由于某种原因,super()方法并不总是按预期运行,选择返回:TypeError('super(type,obj):objmustbeaninstanceorsubtypeoftype)'我了解错误的含义。我不明白为什么它会出现错误。这是正在破坏的代码片段。系统中的所有对象都是新样式对象。真正有趣的是,这个错误并不总是出现。我不知道是什么原因造成的。Retrieval中的super()方法传递Retrieval类,然后将自身作为对象传递,就我而言知道,super()是如何应该被调用的。有什么想法吗?在文件DBConnection.py中:classDBAdminConnection(o
由于某种原因,super()方法并不总是按预期运行,选择返回:TypeError('super(type,obj):objmustbeaninstanceorsubtypeoftype)'我了解错误的含义。我不明白为什么它会出现错误。这是正在破坏的代码片段。系统中的所有对象都是新样式对象。真正有趣的是,这个错误并不总是出现。我不知道是什么原因造成的。Retrieval中的super()方法传递Retrieval类,然后将自身作为对象传递,就我而言知道,super()是如何应该被调用的。有什么想法吗?在文件DBConnection.py中:classDBAdminConnection(o
在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
运行时..pythonsetup.pysdistregisterupload..我得到以下输出:runningregisterWeneedtoknowwhoyouare,sopleasechooseeither:1.useyourexistinglogin,2.registerasanewuser,3.havetheservergenerateanewpasswordforyou(andemailittoyou),or4.quitYourselection[default1]:1Username:examplePassword:...Registeringmypackagetohttp
运行时..pythonsetup.pysdistregisterupload..我得到以下输出:runningregisterWeneedtoknowwhoyouare,sopleasechooseeither:1.useyourexistinglogin,2.registerasanewuser,3.havetheservergenerateanewpasswordforyou(andemailittoyou),or4.quitYourselection[default1]:1Username:examplePassword:...Registeringmypackagetohttp
我收到了这个错误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()函数的第一个参数吗?这似乎行得通,但我有充分的理由不应该这样做吗? 最佳答案