为什么实例不能从类继承属性?

我的代码如下:

class Ball(object):
    pass
ball = Ball()
dir(ball) == dir(Ball) # True
Ball.__name__ # Ball
ball.__name__ # error

为什么ball没有__name__的{​​{1}}?

Asp123Asp 回答:为什么实例不能从类继承属性?

__name__是自动在类上可用的对象,而不是对象。 Custom classes have a

  

特殊属性:__name__是类名…

而类实例没有:

  

特殊属性:__dict__是属性字典; __class__是实例的类。

尝试

ball.__class__.__name__
,

访问Ball时,它会访问。 class 中的属性,要从该类的实例访问名称,您必须使用class运算符,因此使用ball。 class 名称

In [591]: dir(Ball.__class__)                                                                                                                                                                              
Out[591]: 
['__abstractmethods__','__base__','__bases__','__basicsize__','__call__','__class__','__delattr__','__dict__','__dictoffset__','__dir__','__doc__','__eq__','__flags__','__format__','__ge__','__getattribute__','__gt__','__hash__','__init__','__init_subclass__','__instancecheck__','__itemsize__','__le__','__lt__','__module__','__mro__','__name__','__ne__','__new__','__prepare__','__qualname__','__reduce__','__reduce_ex__','__repr__','__setattr__','__sizeof__','__str__','__subclasscheck__','__subclasses__','__subclasshook__','__text_signature__','__weakrefoffset__','mro']
本文链接:https://www.f2er.com/3126730.html

大家都在问