在Python中,我如何选择调用哪个Parent的方法?假设我想调用父ASDF2的__init__方法。好像我必须在super()中指定ASDF1..?而如果我想调用ASDF3的__init__,那么我必须指定ASDF2?!>>>classASDF(ASDF1,ASDF2,ASDF3):...def__init__(self):...super(ASDF1,self).__init__()>>>ASDF()#ASDF2's__init__happened>>>classASDF(ASDF1,ASDF2,ASDF3):...def__init__(self):...super(ASDF2
在Python中,我如何选择调用哪个Parent的方法?假设我想调用父ASDF2的__init__方法。好像我必须在super()中指定ASDF1..?而如果我想调用ASDF3的__init__,那么我必须指定ASDF2?!>>>classASDF(ASDF1,ASDF2,ASDF3):...def__init__(self):...super(ASDF1,self).__init__()>>>ASDF()#ASDF2's__init__happened>>>classASDF(ASDF1,ASDF2,ASDF3):...def__init__(self):...super(ASDF2
我收到了这个错误TypeError:super()takesatleast1argument(0given)在python2.7.11上使用这段代码:classFoo(object):def__init__(self):passclassBar(Foo):def__init__(self):super().__init__()Bar()使其工作的解决方法是:classFoo(object):def__init__(self):passclassBar(Foo):def__init__(self):super(Bar,self).__init__()Bar()似乎该语法特定于python
我收到了这个错误TypeError:super()takesatleast1argument(0given)在python2.7.11上使用这段代码:classFoo(object):def__init__(self):passclassBar(Foo):def__init__(self):super().__init__()Bar()使其工作的解决方法是:classFoo(object):def__init__(self):passclassBar(Foo):def__init__(self):super(Bar,self).__init__()Bar()似乎该语法特定于python
这个问题在这里已经有了答案:Howtoavoidinfiniterecursionwithsuper()?(1个回答)关闭7年前。我最近发现(通过StackOverflow)调用基类中的方法我应该调用:super([[派生类]],self).[[基类方法]]()没关系,它有效。但是,当我进行更改时,我发现自己经常在类之间复制和粘贴,并且经常忘记将派生类参数修复为super()函数。我想避免必须记住更改派生类参数。我可以改用self.__class__作为super()函数的第一个参数吗?这似乎行得通,但我有充分的理由不应该这样做吗? 最佳答案
这个问题在这里已经有了答案:Howtoavoidinfiniterecursionwithsuper()?(1个回答)关闭7年前。我最近发现(通过StackOverflow)调用基类中的方法我应该调用:super([[派生类]],self).[[基类方法]]()没关系,它有效。但是,当我进行更改时,我发现自己经常在类之间复制和粘贴,并且经常忘记将派生类参数修复为super()函数。我想避免必须记住更改派生类参数。我可以改用self.__class__作为super()函数的第一个参数吗?这似乎行得通,但我有充分的理由不应该这样做吗? 最佳答案
ActivatingMorePixelsinImageSuper-ResolutionTransformer(在图像超分辨率transformer中激活更多的像素)作者:XiangyuChen1,2,XintaoWang3,JiantaoZhou1,andChaoDong2,4单位:1UniversityofMacau2ShenzhenInstituteofAdvancedTechnology,ChineseAcademyofSciences3ARCLab,TencentPCG4ShanghaiAILaboratory代码:GitHub-chxy95/HAT:ActivatingMorePix
我有一个带有很多__init__参数的基类:classBaseClass(object):def__init__(self,a,b,c,d,e,f,...):self._a=a+bself._b=bifbelsea...所有的继承类都应该运行基类的__init__方法。我可以在每个调用父类(superclass)__init__的继承类中编写一个__init__()方法,但这将是严重的代码重复:classA(BaseClass):def__init__(self,a,b,c,d,e,f,...):super(A,self).__init__(a,b,c,d,e,f,...)classB
我有一个带有很多__init__参数的基类:classBaseClass(object):def__init__(self,a,b,c,d,e,f,...):self._a=a+bself._b=bifbelsea...所有的继承类都应该运行基类的__init__方法。我可以在每个调用父类(superclass)__init__的继承类中编写一个__init__()方法,但这将是严重的代码重复:classA(BaseClass):def__init__(self,a,b,c,d,e,f,...):super(A,self).__init__(a,b,c,d,e,f,...)classB
我正在尝试学习Python中的super()函数。我以为我已经掌握了它,直到我看到这个例子(2.6)并发现自己卡住了。http://www.cafepy.com/article/python_attributes_and_methods/python_attributes_and_methods.html#super-with-classmethod-exampleTraceback(mostrecentcalllast):File"",line1,inFile"test.py",line9,indo_somethingdo_something=classmethod(do_somet