为什么init需要两个参数?

mis*_*rko -2 python python-3.x

我可能在这里遗漏了一些明显的东西.使用以下代码:

class Thing():
    def __init__(self, name):
        self.name = name

that = Thing()
Run Code Online (Sandbox Code Playgroud)

我得到错误'init需要两个参数'.我认为'self'是参数之一,当我尝试通过将名称放在括号内来实例化对象时,我会得到其他错误.

shx*_*hx2 5

是的,你__init__需要两个论点:selfname.当你调用时Thing(),self会隐式传递,但你仍然需要明确地传递第二个,比如Thing("name").如果你在做这件事时仍然遇到错误,那就是另一回事了.您也应该发布该错误.

(我怀疑错误说"init需要两个参数".包含实际的错误信息会更有帮助...)

  • @mistermarko:所以在代码中你没有显示哪个与你的例子有什么不同,你没有解释你有没有引用的错误? (3认同)