Python面向对象2
二,面向对象静态属性,类方法,静态方法
静态属性:
1 #Author : Kelvin 2 #Date : 2019/1/15 11:29 3 4 class Peple: 5 government="opo" 6 def __init__(self,name,age,gender): 7 self.name=name 8 self.age=age 9 self.gender=gender 10 11 @property 12 def eat(self): 13 return "%s 正在吃。。。"%(self.name) 14 15 p=Peple("kelvin",20,"male") 16 print(p.eat)
静态属性在调用方法时,不需要加括号,直接使用 对象.函数名 调用
类方法:
1 #Author : Kelvin 2 #Date : 2019/1/15 11:35 3 4 class Peple: 5 government="opo" 6 def __init__(self,name,age,gender): 7 self.name=name 8 self.age=age 9 self.gender=gender 10 def eat(self,food): 11 print("%s 正在吃 %s"%(self.name,food)) 12 13 @classmethod 14 def run(cls): #使用类方法函数参数为类本身 15 print(cls) 16 print(cls.government) 17 18 Peple.run() #直接使用 类名.类方法 python默认会将调用类作为参数传递到给函数 等价于 Peple.run(Peple)
静态方法:
1 #Author : Kelvin 2 #Date : 2019/1/15 11:35 3 4 #静态方法只是名义上归属于类管理,不使用类变量和实例变量,是类的工具包 5 class Peple: 6 government="opo" 7 def __init__(self,name,age,gender): 8 self.name=name 9 self.age=age 10 self.gender=gender 11 def eat(self,food): 12 print("%s 正在吃 %s"%(self.name,food)) 13 14 @staticmethod 15 def run(x,y): #使用类方法函数参数为类本身 16 print("静态方法:",x,y) 17 18 19 Peple.run("kelvin","nice") #直接使用 类名.静态方法 20 21 p=Peple("kelvin",20,"male") 22 p.run("kelvin","run") # 对象.静态方法 调用 23 24 print(Peple.__dict__) #所有方法在类中保存,对象使用时从类中调用 25 print(p.__dict__) #属性值在对象中保存一份