那里出了问题,运行时一直说我的comp属性没有remo

img

img

回答:说真的,我对python不是很熟悉,都没啥底气,但那个开头的def init(…………),函数里面,为啥只声明了self.im,是不是其他的也得同样把值传下来,加上self.remo,self.rede试一下;
没有实践就没有发言权,没有代码啊,下次记得附上代码(由于代码缺少,这里就不继承和重载了,效果应该差不多),实验结果如下:

python中super().__init__()_java/python知识分享-CSDN博客_super().__init__() super().__init__() 1、子类构造函数调用super().__init__()1.1、第一个直接继承父类,可以调用name1.2、第二个继承自父类,覆盖初始化化def init,增加属性age,不能调用name属性1.3、第三个继承自父类,覆盖初始化化def init,并继承初始化属性name,可以调用2、继承顺序3、python2和3的区别1、子类构造函数调用super().i... https://blog.csdn.net/a__int__/article/details/104600972?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163595536616780264032356%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163595536616780264032356&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-104600972.first_rank_v2_pc_rank_v29&utm_term=python+super%28%29.__init__%28%29&spm=1018.2226.3001.4449

super().init(remo,rede) 为继承父类的__init__方法,这里就注释掉了
按照你写的,应该继承了也没有remo和rede的声明,你试试看,如果有问题,把代码都给一下,我看看能不能改出来

img


class Comp():
    def __init__(self,remo=1,rede=1,im=0):
        #super().__init__(remo,rede)
        self.im=round(im,2)

    def __gt__(self,other):
        return (self.remo/self.rede,self.im)>(other.remo/other.rede,other.im)

a=Comp()