成員/方法/屬性/私有
阿新 • • 發佈:2019-03-25
都是 one code static 睡覺 訪問 pen lap ins
1.成員
類裏面定義的變量和方法都被稱為成員(字段)
創建對象:
找類---->開辟空間(__new__)------>__init__()
變量:
1.成員變量
2.類變量
類名.變量 記住一定要用類名去操作
可以綁定也可以修改
1 class StarkConfig(object): 2 list_display = [] 3 print("類變量的地址:", id(list_display)) 4 5 def __init__(self):View Code6 self.list_display = [] 7 print(id(self.list_display)) 8 9 def get_list_display(self): 10 self.list_display.insert(0, 33) 11 return self.list_display 12 13 14 s1 = StarkConfig() 15 s2 = StarkConfig() 16 r1 = s1.get_list_display() 17 print(r1) 18 r2 = s2.get_list_display()19 print(r2) 20 """ 21 類變量的地址: 1885633733192 22 1885633733256 23 1885637388936 24 [33] 25 [33] 26 """ 27 28 class StarkConfig(object): 29 list_display = [] 30 print("類變量的地址:", id(list_display)) 31 32 # def __init__(self): 33 # self.list_display = [] 34 # print(id(self.list_display))35 36 def get_list_display(self): 37 self.list_display.insert(0, 33) 38 return self.list_display 39 40 41 s1 = StarkConfig() 42 s2 = StarkConfig() 43 r1 = s1.get_list_display() 44 print(r1) 45 r2 = s2.get_list_display() 46 print(r2) 47 """ 48 類變量的地址: 2554676732488 49 [33] 50 [33, 33] 51 """
2.方法:
1.成員實例方法 加了self的,調用必須用對象去訪問
2.類方法
當方法需要傳遞類名的時候.需要類方法。在上方加@classmethod
3.靜態方法 當你的方法不需要傳遞當前類的對象的時候
語法規則:在方法上面加@staticmethod
面試題:靜態方法/類方法/實例方法的區別
3.屬性:用方法來描述我們的屬性信息
1.@property #表示當前方法是一個屬性。方法的返回值就是這個屬性的值
2.這個方法只能有一個參數self
3.必須有一個返回值
4.私有
只能在自己類裏面訪問的
__方法
__變量
__類變量
都是私有變量,別人訪問不到 包括兒子
1 # 方法屬性實例 2 class Person(object): 3 4 def __init__(self, name, gender, hobby, money): 5 self.name = name 6 self.gender = gender 7 self.hobby = hobby 8 self.__money = money 9 10 def show(self): 11 print("我有" + str(self.__money) + "元錢") 12 # 私有變量在外面不可直接訪問 13 14 @staticmethod 15 def calc(a, b): 16 # 就是一個函數 用不到對象而已 17 return a + b 18 19 @classmethod 20 def classMethod(cls): 21 # 這裏面cls是一個類 22 p = cls("小張", "xx", "chifan", 100) 23 print(type(p), id(p)) 24 25 @property # 直接當做一個屬性來訪問 不需要括號 26 def age(self): 27 return 10 28 29 30 # 關於調用 既然是類方法和靜態方法 那麽你當然要用類去調用啊 31 # 實例化一個類:1.找類名 2.__new__ 3.__init__() 32 p = Person("test", "不詳", "睡覺", 1000000000) 33 p.show() 34 print(p.age) 35 print(Person.calc(2, 3)) 36 Person.classMethod() 37 """ 38 我有1000000000元錢 39 10 40 5 41 <class ‘__main__.Person‘> 2363753049504 42 """View Code
成員/方法/屬性/私有