草庐IT

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 - 如何在 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父类访问子类的类变量

我目前正在尝试在我的Python项目中实现一些继承,但遇到了障碍。我正在尝试创建一个baseParentClass来处理许多子类的基本功能。在这个具体的例子中,我试图用一些属性(设置为0)初始化一个实例,这些属性存储为Child中的类变量列表(称为ATTRS)。我不确定如何在父类中使用这个ATTRS。classParent(object):def__init__():forattrinATTRS:setattr(self,attr,0)classChild(Parent):#classvariableATTRS=[attr1,attr2,attr3]def__init__():supe

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

python - 如何在 DRF 中访问 ListSerializer 父类的 serializer.data?

我在尝试访问serializer.data时遇到错误在Response(serializer.data,status=something)返回之前:GettingKeyErrorwhenattemptingtogetavalueforfieldonserializer.这发生在所有字段上(因为事实证明我正在尝试访问父而不是子上的.data,见下文)类定义如下所示:classBulkProductSerializer(serializers.ModelSerializer):list_serializer_class=CustomProductListSerializeruser=ser

Python在父类中使用派生类的方法?

我可以强制父类调用派生类的函数版本吗?classBase(object):attr1=''attr2=''defvirtual(self):pass#doesn'tdoanythingintheparentclassdeffunc(self):print"%s,%s"%(self.attr1,self.attr2)self.virtual()以及派生自它的类classDerived(Base):attr1='IaminclassDerived'attr2='blahblah'defvirtual(self):#dostuff...#dostuff...清除模糊:d=Derived()d

python - 如何将所有参数从 __init__ 传递给父类(super class)

我可以在Python中使用任何魔法来通过添加一些额外的参数来有效地使用super构造函数吗?理想情况下,我想使用类似的东西:classZipArchive(zipfile.ZipFile):def__init__(self,verbose=True,**kwargs):"""Constructorwithsomeextraparams.Forotherparamssee:zipfile.ZipFile"""self.verbose=verbosesuper(ZipArchive,self).__init__(**kwargs)然后能够将原始构造函数参数与我类(class)的一些额外内容

python - 在不更改名称的情况下向父类方法添加额外功能

这个问题在这里已经有了答案:HowdoIcallaparentclass'smethodfromachildclassinPython?(16个答案)关闭6年前。我有两个类(class),一个是parent,另一个是child。classParent(object):def__init__(self):#doessomethingdefmethod_parent(self):print"Parent"classChild(Parent):def__init__(self):Parent.__init__(self)defmethod_parent(self):print"Child"继

python - 使用 super 为多个父类调用 init?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:CanSuperdealwithmultipleinheritance?Python继承?我有一个类结构(如下),并希望子类调用parent双方的__init__。这有可能以“super”方式进行,还是只是一个糟糕的想法?classParent1(object):def__init__(self):self.var1=1classParent2(object):def_init__(self):self.var2=2classChild(Parent1,Parent2):def__init__(self):#

python - 如果找不到 "polymorphic_identity",SQLAlchemy ORM : Polymorphic Single Table Inheritance, 回退到父类

使用Python3.5和SQLAlchemy1.0.14(ORM)。我有一个这样声明的项目表:fromsqlalchemy.ext.declarative.apiimportdeclarative_baseBase=declarative_base()classItem(Base):__tablename__='items'id=Column(Integer,primary_key=True)type=Column(String)#othernonrelevantattributes我的项目可以有许多不同的类型,类型标识符存储在type中。对于其中一些对象类型,我需要提供特定的方法或属