为了账号安全,请及时绑定邮箱和手机立即绑定

python面向对象课程中如下代码本地运行后报错,求解

class Programer(object):
    hobby='Play Computer'

    def __init__(self, name, age, weight):
        self.name = name
        self._age = age
        self.__weight = weight
    
    @classmethod
    def get_hobby(cls):
        return cls.hobby

    @property
    def get_weight(self):
        return self.__weight

    def self_introduction(self):
        print ('My name is %s \nI an %s years old\n' %(self.name, self.age))

class BackendProgramer(Programer):
    def __int__(self, name, age, weight, language):
        super(BackendProgramer, self).__int__(name, age, weight)
        self.language = language

if __name__ == '__main__':
    programer = BackendProgramer.('Albert', 25, 80, 'Python')
    print (dir(programer))
    print (programer.__dir__)
    print (type(programer))
    print (isinstance(programer, Programer))

报错信息如下:

Traceback (most recent call last):

  File "C:/Users/WMY/Documents/python study/2017-2-12.py", line 26, in <module>

    programer = BackendProgramer('Albert', 25, 80, 'Python')

TypeError: __init__() takes 4 positional arguments but 5 were given

不懂啥意思,只有4个参数呀,求解?

正在回答

2 回答

programer = BackendProgramer.('Albert', 25, 80, 'Python')  改成

programer = BackendProgramer('Albert', 25, 80, 'Python')   

多了一个.

0 回复 有任何疑惑可以回复我~
#1

慕九州1216299 提问者

非常感谢!
2017-02-25 回复 有任何疑惑可以回复我~

21和22行的  __int__   =======>  __init__

拼写错误。。。。

个人还是比较喜欢Programer.__init__(self, age, name,weight)这种写法, 好像更直观

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

python面向对象课程中如下代码本地运行后报错,求解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信