Py学习  »  Python

Python-打印创建对象时调用了哪些dunder方法

Data Mastery • 3 年前 • 1283 次点击  

我遇到了下面的代码,看起来很简单,但对我来说有点不可思议:

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方法?

据我目前的理解,似乎是:

  1. __new__
  2. __init__
    可选: __call__

有人能帮我如何真正看到这一点吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130711
 
1283 次点击  
文章 [ 1 ]  |  最新文章 3 年前