Python的方法括号为空,是什么含义

2018/11/19:

class Bird(object):
    def init(self,sound):
        self.sound = sound
        print("my sound is:",sound)
        
    def chirp(self):
        print(self.sound)
        
    def chirp_repeat(self,sound,n):
        for i in range(n):
            self.chirp(sound)
        
summer = Bird("ji")
summer.chirp_repeat("ji",10)

执行后一直报错,见下方截图:

修改后:

执行成功。 其中原因是什么,求解!

  1. 你想使用summer = Bird("ji"),需要__init__()这个函数进行初始化,而你使用的init相当于自定义初始化函数,所以你应该使用 summer.init('ji')来初始化sound这个变量 2.chrip()这个函数只有一个参数 ,但是 你调用时,有两个参数, 3.chrip_repeat()这个函数不需要重新传参sound

正确代码如下:

 class Bird(object):
    def __init__(self, sound):
        self.sound=sound

    '''
    def init(self,sound):
        self.sound = sound
        print("my sound is:",sound)
    '''    
    def chirp(self):
        print(self.sound)

    def chirp_repeat(self,n):
        for i in range(n):
            self.chirp()

summer = Bird('ji')
#summer.init('ji')
summer.chirp_repeat(10)