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__)   #属性值在对象中保存一份
原文地址:https://www.cnblogs.com/sun-10387834/p/10271200.html