Skip to main content
 首页 » 编程设计

python之dir() 一个 __class__ 属性

2025年05月04日16lyhabc

class Foo: 
  pass 
 
>>> f = test.Foo() 

让我们看看类实例......

>>> dir(f) 
['__add__', [__class__] ...] 

哦哦!让我们看看类实例元数据...

>>> dir(f.__class__) 
['__add__', [__class__] ...] 

嗯...期待 __class__ 的属性;但返回 f

的属性

尝试击中和试验......

>>> dir(f.__class__.__class__) 
['__abstractmethods__', '__base__' ...] 

嗯……为什么要加倍魅力?

请您参考如下方法:

dir(f) 和 dir(f.__class__) 显示了两个不同事物的属性。只是你的空对象和它自己的类有相同的属性。试试这个:

>>> class Foo: 
...  def __init__(self): 
...   self.a = 17 
... 
>>> f = Foo() 
>>> 'a' in dir(f) 
True 
>>> 'a' in dir(f.__class__) 
False