如何访问Python超类的属性,例如通过__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.

最佳答案
你可以使用dir():

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

相关文章

我最近重新拾起了计算机视觉,借助Python的opencv还有face_r...
说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Poolin...
记得大一学Python的时候,有一个题目是判断一个数是否是复数...
文章目录 3 直方图Histogramplot1. 基本直方图的绘制 Basic ...
文章目录 5 小提琴图Violinplot1. 基础小提琴图绘制 Basic v...
文章目录 4 核密度图Densityplot1. 基础核密度图绘制 Basic ...