Python学习 :面向对象 -- 类的成员
程序员文章站
2023-03-30 21:57:05
类的成员 一、字段 - 字段可以分为'普通字段'和'静态字段'两种 - 普通字段(保存在对象中,执行时只能通过对象来进行访问) - 静态字段(保存在类中,在内存中只保存一份数据(可以有效地节约内存的空间),执行时可以通过对象来访问,也可以通过类来访问) 二、方法 - 方法可以分为三种'普通方法'、' ......
类的成员
一、字段
- 字段可以分为'普通字段'和'静态字段'两种
- 普通字段(保存在对象中,执行时只能通过对象来进行访问)
- 静态字段(保存在类中,在内存中只保存一份数据(可以有效地节约内存的空间),执行时可以通过对象来访问,也可以通过类来访问)
class province:
country = '中国' # 静态字段
def __init__(self, name):
self.name = name # 普通字段
def show(self): # 方法
print(self.name)
beijing = province('北京')
shanghai= province('上海')
print(beijing.name, province.country) # 通过类来访问静态对象country
print(shanghai.name,shanghai.country) # 通过对象来访问静态对象country
===>北京 中国
===>上海 中国
二、方法
- 方法可以分为三种'普通方法'、'静态方法'以及'类方法'三种
- 普通方法,保存在类中,通过对象来调用,self参数为对象
- 静态方法,保存在类中,通过类来直接调用
静态方法的特殊之处:1、self 参数不再是必须的
2、在方法前加上装饰器 @staticmethod
3、也可以传入对应的参数
- 类方法, 保存在类中,通过类来直接调用,cls参数为类
类方法的特殊之处: 1、需要参数,一般使用为 cls
2、在方法前加上装饰器 @classmethod
应用场景:
- 当对象中需要保存值,调用方法时需要使用对象中的值,此时使用普通方法更为合适
- 当不需要任何对象中的值时,使用静态方法或类方法比较合适
class method:
# 普通方法
def nml(self):
print('普通方法')
# 静态方法
@staticmethod
def stm():
print('静态方法')
# 类方法
@classmethod
def cls(cls):
# 一般在类方法中的参数为cls ,cls 是类名
print('类方法')
method.stm()
method.cls()
===>静态方法
===>类方法
三、属性(特性)
属性,保存在类中
class info:
@property
def med1(self):
print('med1')
def med2(self):
print('med2')
def med3(self,v):
print(v)
def med4(self):
print('med4')
per = property(fget=med2,fset=med3,fdel=med4)
obj = info()
obj.med1
ret = obj.per # fget的访问方式
obj.per = 'med3' # fset的访问方式
del obj.per # fdel的访问方式
===>med1
===>med2
===>med3
===>med4
上一篇: 大海边的一户人家惨遭丧子
下一篇: 那一年
推荐阅读