Python面向对象2

Posted 孙小龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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__)   #属性值在对象中保存一份

 

以上是关于Python面向对象2的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段9——JS中的面向对象编程

Python面向对象学习之八,装饰器

python:第二部分:面向对象:面向对象object orinted

Python基础 面向对象

Python之面向对象:面向对象基础

Python面向对象_初步认识