所以我一直在观看有关 Python 类的视频教程,代码如下所示:
class MyPythonClass():
def _init_(self, msg):
self.msg = msg
self.print_msg()
def print_msg(self):
print(self.msg)
inst = MyPythonClass('hello')
这几乎是逐字复制的,并且代码在视频中有效。但是当在 Eclipse 工作区中按照上面的方式使用它时,我收到以下错误:
TypeError: object() takes no parameters
并且,当将其与类方法 print_msg('hello')
一起使用时,我收到以下错误:
TypeError: say_hello() takes 1 positional argument but 2 were given
我只传递了 1 个字符串参数,而不是 2 个参数,对吧..
顺便说一句,我认为本教程使用的是 Python 3.1,而我使用的是 Python 3.6。
为什么我会收到这些错误?
最佳答案
将__init__
读作“dunder init”,您将永远不会忘记特殊方法名称以两个下划线开头和结尾!
关于Python 类绑定(bind)不起作用,引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48238599/