所以我一直在观看有关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。
为什么我会收到这些错误?
答案 0 :(得分:2)
将__init__
读作" dunder init"并且您永远不会忘记特殊方法名称以两个下划线开头和结尾!