草庐IT

super_package

全部标签

python - 我如何正确地继承具有 __new__ 方法的父类(super class)?

假设我们有一个类'Parent',由于某种原因定义了__new__和一个继承自它的类'Child'。(在我的例子中,我试图从我无法修改的第3方类继承)classParent:def__new__(cls,arg):#...somethingimportantisdoneherewitharg我的尝试是:classChild(Parent):def__init__(self,myArg,argForSuperclass):Parent.__new__(argForSuperclass)self.field=myArg但是同时p=Parent("argForSuperclass")按预期工

python - 如何模拟父类(super class)的 __init__ 创建一个包含用于单元测试的模拟对象的属性?

我正在尝试为类的__init__编写单元测试:def__init__(self,buildNum,configFile="configfile.txt"):super(DevBuild,self).__init__(buildNum,configFile)ifconfigFile=="configfile.txt":self.config.MakeDevBuild()config属性由super的__init__设置。我正在使用mock,并且我希望config属性是一个模拟对象。但是,我一直无法弄清楚如何真正实现这一目标。这是我能想到的最好的测试:deftest_init(self):

python - 导入错误 : No module named 'nltk.tokenize' ; 'nltk' is not a package

我在Windows7的pycharmIDE中使用python3.5.2,但在导入nltk包时遇到问题。importnltk出现以下错误:Traceback(mostrecentcalllast):File"",line1,inFile"C:\ProgramFiles(x86)\JetBrains\PyCharmCommunityEdition2016.2.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py",line21,indo_importmodule=self._system_import(name,*args,**kwargs)

python - 如何在 Python 中调用父类(super class)中的子类方法

我想知道如何调用父类(superclass)中的子类方法。 最佳答案 我相信这是一种经常使用的模式。classA(object):defx(self):self.y()defy(self):print('defaultbehavior')classB(A):defy(self):print('ChildBbehavior')classC(A):defz(self):pass>>>B().x()ChildBbehavior>>>C().x()defaultbehavior它有点像抽象类,但提供了默认行为。但是我记不起模式的名称了。

python - Super可以处理多重继承吗?

像这样从两个对象继承时classFoo(object):def__init__(self,a):self.a=aclassBar(object):def__init__(self,b):self.b=b我通常会做这样的事情classFooBar(Foo,Bar):def__init__(self,a,b):Foo.__init__(self,a)Bar.__init__(self,b)super怎么知道我是否想调用两者?如果是这样,它将如何知道将哪个参数传递到哪里。还是根本不可能在这里使用super?即使Foo和Bar采用相同的参数,super也能处理这个问题吗?或者我一开始就不应该尝

python - 在父类中调用 `super()`

我正在阅读RaymondHettinger的Python’ssuper()consideredsuper!关于一个页面,有这个例子:classShape:def__init__(self,shapename,**kwds):self.shapename=shapenamesuper().__init__(**kwds)classColoredShape(Shape):def__init__(self,color,**kwds):self.color=colorsuper().__init__(**kwds)cs=ColoredShape(color='red',shapename='c

Python3 的 super 和 comprehensions -> TypeError?

在理解中使用python3的super似乎总是导致TypeError:super(type,obj):objmustbeaninstanceorsubtypeoftype(但使用python2的super确实按预期工作)classA(object):def__repr__(self):return"hi!"classB(A):def__repr__(self):return"".join(super().__repr__()foriinrange(2))repr(B())#output:)failed:TypeError:super(type,obj):objmustbeaninsta

python - 导入错误 : No module named 'html.parser' ; 'html' is not a package (python3)

这个问题在这里已经有了答案:Importinginstalledpackagefromscriptwiththesamenameraises"AttributeError:modulehasnoattribute"or"ImportError:cannotimportname"(2个答案)关闭3年前。代码:fromhtml.parserimportHTMLParser追溯(最近的调用最后):File"program.py",line7,infromhtml.parserimportHTMLParserImportError:Nomodulenamed'html.parser';'htm

Python 多重继承 : call super on all

我有以下两个父类(superclass):classParent1(object):defon_start(self):print('dosomething')classParent2(object):defon_start(self):print('dosomethingelse')我希望有一个继承自两者的子类能够为parent双方调用super。classChild(Parent1,Parent2):defon_start(self):#supercallonbothparents执行此操作的Pythonic方法是什么?谢谢。 最佳答案

python - 如何在 Python 的 mixin 中调用封闭类的 super?

我在Django中有以下代码:classParent(models.Model):defsave(self):#DoStuffAclassMixin(object):defsave(self):#DoStuffBclassA(Parent,Mixin):defsave(self):super(A,self).save()#DostuffC现在,我想使用mixin,而不用在Parent中公开保存的行为。所以当我保存时,我想做C、B和A。我读过Callingthesetterofasuperclassinamixin但是我不明白,并且阅读了super文档后它似乎没有回答我的问题。问题是,我