python描述器的用法

  介绍

这篇文章主要介绍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描述器的用法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

python描述器的用法