好吧,我已经四处寻找了一段时间了,请原谅,这可能是一个相当简单的问题,但无论我读了多少个线程的相同错误类型,我不知道我做错了什么。我在概念上遗漏了一些我相信的东西。你知道吗
代码如下:
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_navidad = Song(["Feliz navidad",
"Feliz navidad",
"Prospero anos delicidad.\n"])
feliz_navidad.sing_me_a_song()
但是,除了使用已定义的sing\u me\u a\u song函数之外,没有其他方法可以让我使用类打印字符串吗?你知道吗
我试图引用Song类,让它打印出一个字符串,而不使用内部定义的函数。。。我想这样做很愚蠢。我误解了它的工作原理。。。你知道吗
这里
您正在传递一个
list[...]
,即1个参数。异常表示2 given,因为self
作为参数隐式传递。但是您声明的__init__
方法需要3
:self
lyrics
feliz
我建议您删除
feliz
参数,因为不管您作为参数传递什么,您只需为feliz
分配一个字符串"feliz navidad, etc etc"
您定义了
__init__
函数来接受两个参数lyrics
和feliz
。您只传递了一个参数,它似乎是lyrics
。你知道吗你的问题不清楚你想要你的代码做什么。如果只想传递一个参数,只需从
__init__
的参数列表中删除feliz
,这样就只需def __init__(self, lyrics)
。现在,您根本没有使用feliz
参数,因此它似乎没有任何用途。你知道吗我还建议您阅读the Python tutorial,以掌握Python的基本知识。你知道吗
相关问题 更多 >
编程相关推荐