任何人都可以用适当的例子向我解释是否存在差异
>>> import inspect
>>> inspect.getmembers(1)
Run Code Online (Sandbox Code Playgroud)
和
>>> type(1).__dict__.items()
Run Code Online (Sandbox Code Playgroud)
和
>>> dir(1)
Run Code Online (Sandbox Code Playgroud)
除了它们按顺序显示减少数量的属性和方法.1是整数(但它可以是任何类型.)
编辑
>>>obj.__class__.__name__ #gives the class name of object
>>>dir(obj) #gives attributes & methods
>>>dir() #gives current scope/namespace
>>>obj.__dict__ #gives attributes
Run Code Online (Sandbox Code Playgroud) 可以访问Class_object的名称.__name__,参见代码:
>>> object
<class 'object'>
>>> object.__name__
'object'
Run Code Online (Sandbox Code Playgroud)
不过,__name__方法 is not inclass_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
Run Code Online (Sandbox Code Playgroud)
object是所有类的基础.它具有所有Python类实例共有的方法.
哪里__name__的设置位于?