1. 成員 在類中你能寫的所有內容都是類的成員 2. 變數 1. 實例變數: 由對象去訪問的變數. 2. 類變數. 此時. 這個變數屬於類. 但是對象也可以訪問. 3. 方法 1. 實例方法: 使用 對象.方法() 特點: 在聲明的時候. 需要給出self, self必須放在第一個位置 在調用的時候 ...
1. 成員
在類中你能寫的所有內容都是類的成員
2. 變數
1. 實例變數: 由對象去訪問的變數.
class Person: def __init__(self, name, id, gender, birth): self.name = name # 實例變數 對象里的變數 self.id = id self.gender = gender self.birth = birth
2. 類變數. 此時. 這個變數屬於類. 但是對象也可以訪問.
class Person: country = "大清" # 類變數 def __init__(self, name, gender): self.name = name self.gender = gender
3. 方法
1. 實例方法: 使用 對象.方法()
特點: 在聲明的時候. 需要給出self, self必須放在第一個位置
在調用的時候. 自動的會把對象傳遞給形參的self
class Computer: def play(self): # 實例方法 print("電腦可以掃雷") def work(self): # 實例方法 print("電腦用來工作")
2. 類方法(@classmethod): 類方法是屬於類的.
特點:在聲明的時候需要給出一個能夠接受類名的參數, cls , 也必須放在參數的第一個
在調用的時候. 自動得把xx對象的類傳遞給cls
class Person: @classmethod # 裝飾器, 此時這個方法是一個類方法 def he(cls): print("人能喝")
3. 靜態方法(@staticmethod): 靜態方法也是屬於類的. 靜態方法就好比. 我們在類中定義了一個函數靜態方法一般和類方法差不多. 使用類名去訪問.
class Person: @staticmethod # 靜態方法 def yue(): print("fsadf")
4. 屬性
在方法上添加一個@property. 可以把一個方法變成一個屬性. 但是這個屬性不可以被賦值
當我們某一個屬性必須經過計算才能得到結果的時候.
class Person: def __init__(self, name, gender, birth): self.name = name self.gender = gender self.birth = birth @property # 把一個方法更改成一個屬性, 每次拿屬性的時候都會自動的去執行這個方法,方法的返回值就是屬性值 def age(self): # 實例方法 return 2018 - self.birth
5. 私有
所有以雙下劃線開頭的方法, 變數都是私有內容. 外界無法訪問. 除非你主動暴露這些內容
class Person: __qie = "潘潘" # 類變數 外部不能調 內部能調 def __init__(self, name, mimi): self.name = name self.__mimi = mimi # 私有內容 實例變數 外部不能調 內部能調 def gaosu(self): print(f"把秘密告訴了同事, 第二天所有人都知道了{self.__mimi}") print(Person.__qie) # 私有的類變數只能在類中調用 def __yue(self): # 私有的實例方法 外部不能調 內部能調 print("我要和寶寶約")