好的,所以我一直在寻找一段时间,请原谅这可能是一个相当简单的问题,但不管我读了多少个线程的相同错误类型,我可以'弄清楚我做错了什么。我相信我在概念上错过了一些东西。类问题,__init__参数不匹配
下面是代码:
class Song(object):
def __init__ (self, lyrics, feliz):
self.lyrics = lyrics
self.feliz = "feliz navidad, etc etc"
def sing_me_a_song(self):
for line in self.lyrics:
print line
happy_bday = Song(["\n\nHappy birthday to you",
"I don't want to get sued",
"So I'll stop right there.\n\n\n"])
bulls_on_parade = Song(["They rally around the family",
"With pockets full of shells.\n"])
happy_bday.sing_me_a_song()
bulls_on_parade.sing_me_a_song()
songz = Song()
print songz.feliz()
这里是我的错误:
Traceback (most recent call last):
File "ex40.py", line 13, in <module>
"So I'll stop right there.\n\n\n"])
TypeError: __init__() takes exactly 3 arguments (2 given)
我意识到这可能是愚蠢的,但我挂了这一点,真的很喜欢一些帮助。如果这意味着什么,这显然来自LPTHW,而且我已经编辑了第40课,如果我删除了所有对feliz的引用,那么这些代码词很好,那就是我试图将我自己的变量添加到类Song中,然后将它打印出来结束。先谢谢你。
所以我可以把它做我想要的东西,加入以下内容:
feliz_navidad = Song(["Feliz navidad",
"Feliz navidad",
"Prospero anos delicidad.\n"])
feliz_navidad.sing_me_a_song()
但是,有没有适合我使用类有它打印一个字符串,而不是使用没有其他办法定义的sing_me_a_song函数?
我试图引用宋类,并打印出一个字符串,而不使用里面定义的函数......我想这是一个愚蠢的事情。我误解了它是如何工作的?
你的'__init__'方法要求两个参数('self'隐式传递),但你只给它一个。你永远不会使用'feliz'。 – Blender