屬性:函數
公有屬性 (屬於類,每一個類一份)spa
普通屬性 (屬於對象,每一個對象一份)code
私有屬性 (屬於對象,跟普通屬性類似,只是不能經過對象直接訪問) 對象
方法:(按做用)blog
構造方法it
析構函數class
方法:(按類型)變量
普通方法object
私有方法(方法前面加兩個下劃線)方法
靜態方法
類方法
屬性方法
靜態方法
@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:
1gutou1gutou-----1-----('tang', '1')--------2-------('tang', '1')