pionrrt 发表于 2023-6-14 16:31:48

关于类的问题,报错是未被定义

class Song(object):
    def _init_(self,lyrics):
      self.lyrics=lyrics
    def sing_me_a_song(self):
      for line in self.lyrics:
            print(line)
    happy_bday=Song(["Happy birthday to you.",
                  "I don't want to get used.",
                  "So I'll stop right there"])
    bulls_on_parade=Song(["They rally around the family",
                         "With pockets full of shells"])
   
    happy_bday.sing_me_a_song()
    bulls_on_parade.sing_me_a_song()

想知道为什么这里显示name 'Song' is not defined呢,如果想让我的代码跑起来应该怎么修改呢

isdkz 发表于 2023-6-14 16:39:54

你的代码出现问题主要是有两个原因。

1. Python的初始化函数应该是 __init__ 而不是 _init_ 。你的初始化函数缺少一个下划线。

2. 创建类对象和调用类方法应该在类定义之外进行,而不是在类定义的内部。

所以,你应该将你的代码修改为以下形式:

class Song(object):
    def __init__(self, lyrics):
      self.lyrics = lyrics

    def sing_me_a_song(self):
      for line in self.lyrics:
            print(line)

happy_bday = Song(["Happy birthday to you.",
                   "I don't want to get used.",
                   "So I'll stop right there"])

bulls_on_parade = Song(["They rally around the family",
                        "With pockets full of shells"])
   
happy_bday.sing_me_a_song()
bulls_on_parade.sing_me_a_song()


这样就应该能解决你的问题。如果有其他问题,欢迎随时向我提问。

pionrrt 发表于 2023-6-14 16:47:23

isdkz 发表于 2023-6-14 16:39
你的代码出现问题主要是有两个原因。

1. Python的初始化函数应该是 __init__ 而不是 _init_ 。你的初始 ...

感谢~!
页: [1]
查看完整版本: 关于类的问题,报错是未被定义