Class_object的名称可通过.__name__
访问,
见代码:
>>> object
<class 'object'>
>>> object.__name__
'object'
然而,__name__
方法is
not
in
class_object的默认设置。
代码:
>>> foo = dir(object)
>>> foo
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
>>> foo.count('__name__')
0 # '__name__' is not in list
object是所有类的基础。它具有所有Python类实例共有的方法。
__name__
的设置位于何处?
答案 0 :(得分:6)
执行类主体后,Python会自动填充一些属性。其中包括__name__
,还有__doc__
,__qualname__
(Python 3.4+)和__module__
。这些自动属性的完整列表可以是table in the inspect
module documentation:
Type Attribute Description
class __doc__ documentation string
__name__ name with which this class was defined
__qualname__ qualified name
__module__ name of module in which this class was defined
这些是由Python类的基本元类定义的:type
(另请参阅@Szabolcs answer)。
>>> '__name__' in dir(object.__class__)
True
答案 1 :(得分:1)
好object
由type
构建,因此您可以在__name__
中找到dir(type)
:
>>> '__name__' in dir(type)
True