您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何访问Python超类的属性,例如通过__class __.__ dict__?

5b51 2022/1/14 8:21:13 python 字数 2934 阅读 479 来源 www.jb51.cc/python

如何获取python类的所有属性名称,包括从超类继承的那些属性?class A(object): def getX(self): return 'X' x = property(getX) a = A() a.x 'X' class B(A): y = 10 b = B() b.x 'X' a.__class__.__dict__

概述

如何获取python类的所有属性名称,包括从超类继承的那些属性

class A(object):
  def getX(self):
    return "X"
  x = property(getX)

a = A()
a.x
'X'

class B(A):
  y = 10

b = B()
b.x
'X'

a.__class__.__dict__.items()
[('__module__','__main__'),('getX',
  

如何访问via b的属性
需要:“给我一个包含b中所有属性名称的列表,包括那些从…继承的属性名称.”

>>> [q for q in a.__class__.__dict__.items() if type(q[1]) == property]
[('x',
  

我想从第一个(a)获得结果,当使用第二个(b)时,但是当前只能获得一个空列表.这也适用于继承自B的另一个C.

for attr_name in dir(B):
    attr = getattr(B,attr_name)
    if isinstance(attr,property):
        print attr

总结

以上是编程之家为你收集整理的如何访问Python超类的属性,例如通过__class __.__ dict__?全部内容,希望文章能够帮你解决如何访问Python超类的属性,例如通过__class __.__ dict__?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶