Python 3.x 中类静态属性(成员变量)的用法

您所在的位置:网站首页 python打印对象成员 Python 3.x 中类静态属性(成员变量)的用法

Python 3.x 中类静态属性(成员变量)的用法

#Python 3.x 中类静态属性(成员变量)的用法| 来源: 网络整理| 查看: 265

Python 3.x 的类声明中支持了静态属性与静态方法。对于实现“单例模型”是可以试试的。用过其他面向对象语言的应该不陌生。 代码

#Demo:Static Attr class Manager(): #静态属性,所有实例只有一个备份,用户实现--单例模型或者资源管理还是有些用处的 data_set = {} access_count = 0 def __init__(self,num): Manager.data_set['default']={ 'name':'init_name', 'data':[num] } #成员属性可以与静态属性重名 self.data_set = "I'm not a static one" #成员方法也可以访问静态属性 def show(self): print("static:",Manager.getData()) print("instance:",self.data_set) #静态方法只能访问静态属性 @staticmethod def getData(): Manager.access_count += 1 return Manager.data_set if __name__=="__main__": #可以直接访问 print(Manager.data_set) #通过静态成员方法访问 print(Manager.getData()) #通过实例成员方法访问 manager = Manager(5) Manager.data_set['new key']='a value' manager.show() #再看一眼静态属性 print(Manager.getData()) print("count:",Manager.access_count) #实例化的对象属性 print(manager.__dict__)

输出结果如下:

{} {} static: {'default': {'name': 'init_name', 'data': [5]}, 'new key': 'a value'} instance: I'm not a static one {'default': {'name': 'init_name', 'data': [5]}, 'new key': 'a value'} count: 3 {'data_set': "I'm not a static one"}


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3