屬性:
公有屬性 (屬於類,每個類一份)
普通屬性 (屬於對象,每個對象一份)
私有屬性 (屬於對象,跟普通屬性相似,只是不能通過對象直接訪問)
方法:(按作用)
構造方法
析構函數
方法:(按類型)
普通方法
私有方法(方法前面加兩個下划線)
靜態方法
類方法
屬性方法
靜態方法
@staticmethod
靜態方法,通過類直接調用,不需要創建對象,不會隱式傳遞self
類方法
@classmethod
類方法,方法中的self是類本身,調用方法時傳的值也必須是類的公有屬性,
就是說類方法只能操作類本身的公有字段
class Dog(object): food = "gutou" age = "1" def __init__(self, name): self.NAME = name @classmethod def eat(self,age): #只能是類中的變量 # print(self.NAME) print(age) print(self.food) @classmethod def eat1(self, age): # 只能是類中的變量 # print(self.NAME) age = "2" self.food = "tang" @staticmethod def print_1(): print(Dog.food, Dog.age) d = Dog("labuladuo") d.eat(Dog.age) #通過對象調用 Dog.eat(Dog.age) #通過類調用 print("-----1-----") d.eat1(Dog.age) Dog.print_1() print("--------2-------") Dog.eat1(Dog.age) Dog.print_1()
output:
1
gutou
1
gutou
-----1-----
('tang', '1')
--------2-------
('tang', '1')