色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 類內(nèi)部成員

Python作為一種高級(jí)編程語(yǔ)言,允許我們使用面向?qū)ο蟮木幊谭绞剑ㄟ^(guò)自定義類和對(duì)象來(lái)解決業(yè)務(wù)問(wèn)題。而類內(nèi)部成員則是類自身定義的一些變量、方法、屬性。在Python中,類內(nèi)部成員包括了3種:

class MyClass:
class_var = 0 #類變量
def __init__(self):
self.instance_var = 0  #實(shí)例變量
def instance_method(self):
print("調(diào)用了實(shí)例方法")
@classmethod
def class_method(cls):
print("調(diào)用了類方法")
@staticmethod
def static_method():
print("調(diào)用了靜態(tài)方法")

第一種類內(nèi)部成員是類變量,即定義在類內(nèi)部方法外的變量。類變量是所有實(shí)例共享的,也就是說(shuō),當(dāng)一個(gè)實(shí)例的類變量被修改后,其他實(shí)例的類變量也會(huì)發(fā)生變化。

class MyClass:
class_var = 0
def __init__(self):
MyClass.class_var += 1
self.instance_var = 0
obj1 = MyClass()
obj2 = MyClass()
obj3 = MyClass()
print(MyClass.class_var)  #輸出 3

第二種類內(nèi)部成員是實(shí)例變量,即定義在類內(nèi)部方法內(nèi)的變量。實(shí)例變量是每個(gè)實(shí)例對(duì)象獨(dú)有的,在實(shí)例被創(chuàng)建時(shí)初始化,可以通過(guò)self進(jìn)行訪問(wèn)。

class MyClass:
def __init__(self):
self.instance_var = 0
def set_var(self, var):
self.instance_var = var
obj = MyClass()
obj.set_var(100)
print(obj.instance_var)  #輸出 100

第三種類內(nèi)部成員是方法,包括了實(shí)例方法、類方法和靜態(tài)方法。

實(shí)例方法是在類內(nèi)定義的函數(shù),可以通過(guò)實(shí)例對(duì)象進(jìn)行調(diào)用。實(shí)例方法的第一個(gè)參數(shù)通常是self,表示當(dāng)前實(shí)例對(duì)象。

class MyClass:
def instance_method(self):
print("調(diào)用了實(shí)例方法")
obj = MyClass()
obj.instance_method()  #輸出 "調(diào)用了實(shí)例方法"

類方法使用@classmethod裝飾器進(jìn)行定義,第一個(gè)參數(shù)通常是cls,表示當(dāng)前類對(duì)象。類方法可以通過(guò)類對(duì)象和實(shí)例對(duì)象進(jìn)行調(diào)用。

class MyClass:
class_var = 0
@classmethod
def class_method(cls):
cls.class_var += 1
obj1 = MyClass()
obj2 = MyClass()
MyClass.class_method()
obj1.class_method()
obj2.class_method()
print(MyClass.class_var)  #輸出 3

靜態(tài)方法使用@staticmethod裝飾器進(jìn)行定義,不需要傳遞任何參數(shù)。靜態(tài)方法可以通過(guò)類對(duì)象和實(shí)例對(duì)象進(jìn)行調(diào)用。

class MyClass:
@staticmethod
def static_method():
print("調(diào)用了靜態(tài)方法")
obj = MyClass()
MyClass.static_method()  #輸出 "調(diào)用了靜態(tài)方法"
obj.static_method()  #輸出 "調(diào)用了靜態(tài)方法"