介绍
这篇文章主要介绍python描述器的用法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
python有哪些常用库
python常用的库:1. requesuts; 2. scrapy; 3.枕头;4.扭曲;5. numpy; 6. matplotlib; 7. pygama; 8。ipyhton等。
本文教程操作环境:windows7多系统,Python 3.9.1,戴尔G3电脑。
<强> 1,说明强>
描述器必须是类属性,Python中,一个类实现了<强> _ 强> <强> _get__, __set__, __delete__ 强>三个任意一个方法都称为描述器;
如果一个类的类属性设置为描述器,那么它被称为此描述器的所有者。
<强> 2,实例方法的实现强>
Python的方法,普通的实例方法,包括<强> staticmethod和classmethod >强,都实现为非数据描述器。因此,实例可以重新定义和覆盖方法,表现为正常的字典属性的访问和修改。这允许单个实例获取与同一类的其他实例不同的行为。
<强> 3,实例强>
Python的方法,普通的实例方法,包括staticmethod和classmethod,都实现为非数据描述器。
class 答: ,,,@classmethod , #,非数据描述器 ,,,def foo (cls): ,,,,,,, , ,,,@staticmethod , #,非数据描述器 ,,,def 酒吧(): ,,,,,,, , ,,,@property , #,数据描述器 ,,,def z(自我): ,,,,,,return 5 , ,,,def getfoo(自我):,#,非数据描述器 ,,,,,,,return self.foo , ,,,def __init__(自我):,#,非数据描述器 ,,,,,,,self.foo =100 ,,,,,,,self.bar =200 ,,,,,,,# self.z =, 300, #, AttributeError:,停下来# 39;t set attribute ,无法覆盖数据描述器的定义 , , a =, () 打印(a.__dict__),, #, {& # 39; foo # 39;:, 100年,& # 39;酒吧# 39;:,200},看不到z属性 打印(A.__dict__), #, {& # 39; __module__& # 39;:, & # 39; __main__ # 39;,, & # 39; foo # 39;:, & lt; classmethod object at 0 x0000017674c6b7b8>,, & # 39;酒吧# 39;:,& lt; staticmethod object at 0 x0000017674c6b7f0>,, & # 39; z # 39;:, & lt; property object at 0 x0000017674bcd598>,, & # 39; getfoo # 39;:, & lt; function A.getfoo at 0 x0000017674c58c80>,, & # 39; __init__ # 39;:, & lt; function A.__init__ at 0 x0000017674c58d08>,, & # 39; __dict__& # 39;:, & lt; attribute & # 39; __dict__& # 39;, of & # 39;一个# 39;,objects>,, & # 39; __weakref__& # 39;:, & lt; attribute & # 39; __weakref__& # 39;, of & # 39;一个# 39;,objects>,, & # 39; __doc__& # 39;:,没有}
以上是“python描述器的用法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!