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

来源:3-4 Python面向对象-类的继承

慕九州1216299

2017-02-12 18:32

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回答

  • 慕粉2142443891
    2017-02-12 22:28:33
    已采纳

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

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

    多了一个.

    慕九州121...

    非常感谢!

    2017-02-25 22:45:46

    共 1 条回复 >

  • 慕粉2142443891
    2017-02-12 22:46:04

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

    拼写错误。。。。

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

Python-面向对象

Python面向对象教程,带你深入了解python面向对象特性

71236 学习 · 81 问题

查看课程

相似问题