我遇到了下面的代码,看起来很简单,但对我来说有点不可思议:
class FileItem(dict):
def __init__(self, name):
dict.__init__(self, name=name)
x = FileItem("test")
print(x)
{'name': 'test'}
当我这样做的时候,似乎也发生了同样的事情:
print(dict.__call__(name="test"))
{'name':'test'}
我认为至少也应该有
__init___
方法在第二个例子中可以被调用,对吗?
有没有办法打印用于创建对象的所有dunder方法?
据我目前的理解,似乎是:
-
__new__
-
__init__
可选:
__call__
有人能帮我如何真正看到这一点吗?