草庐IT

python - 将父类(super class)实例转换为子类实例

我有一个我无法触及的外部图书馆。这个库有一个函数genA(),它返回类A的实例。在我这边,我将类B定义为类A的子类。我想在我的项目中使用类B的实例,但该实例应该由genA()生成。是否有任何标准且简单的方法可以做到这一点?#IcannnottweakthesecodedefgenA():a=Areturn(a)classA:def__init__():self.a=1#---#codeinmysideclassB(A):def__init__():self.b=2a=genA()#likeacopy-constructor,doesn'twork#b=B(a)#Iwanttogetth

带有初始化程序的 Python 子类化过程

我正在尝试创建一个对象作为一个新进程。如果我给类一个初始化程序,程序就会显示错误。代码importmultiprocessingasmpimporttimeclassMy_class(mp.Process):def__init__(self):self.name="Hello"+self.nameself.num=20defrun(self):printself.name,"createdandwaitingfor",str(self.num),"seconds"time.sleep(self.num)printself.name,"exiting"if__name__=='__mai

python - 使用 __new__ 覆盖子类中的 __init__

我对使用__new__功能将代码注入(inject)子类的__init__函数很感兴趣。我从文档中了解到,python将在__new__返回的实例上调用__init__。但是,我在从__new__返回实例之前更改实例中__init__的值的努力似乎不起作用。classParent(object):def__new__(cls,*args,**kwargs):new_object=super(Parent,cls).__new__(cls)user_init=new_object.__init__def__init__(self,*args,**kwargs):print("New__i

python - 如何子类化构建命令?

主题是self描述的:我需要子类化setup.pybuild命令以执行额外的构建步骤。但是,我找不到任何可继承的build命令类。我一直在尝试:classBuildCommandProxy(setuptools.command.build):pass和classBuildCommandProxy(distutils.command.build):pass甚至:classBuildCommandProxy(setuptools.distutils.command.build):pass没有任何成功。更新:寻找如何实现类似this的方法使用setuptools。UPDATE2:我有一些自定

python - 如何装饰子类中的继承方法?

我不太确定如何在继承的方法上使用装饰器。通常装饰器放在定义之前,但对于继承的函数,定义在父类而不是子类中给出。我想避免重写子类中方法的定义,并简单地指定将装饰器放在继承的方法周围。为了让自己更清楚,这是我的意思的一个工作示例:classPerson():def__init__(self,age):self.age=age@classmethoddefgets_drink(cls,):print"it'stimetogetadrink!"return"Abeer"defdec(some_f):deflegal_issue(obj,):some_f(obj)return'ACoke'ret

python - 如何在 TestCase 子类中隐藏堆栈帧?

我想将自定义断言方法添加到TestCase子类。我试图从unittest模块复制我的实现,以便它尽可能匹配常规TestCase的行为。(我宁愿只委托(delegate)给self.assertEqual()但这会导致更多的回溯噪音,见下文。)unittest模块似乎自动隐藏了一些内部细节它在报告失败断言时的实现。importunittestclassMyTestCase(unittest.TestCase):defassertLengthIsOne(self,sequence,msg=None):iflen(sequence)!=1:msg=self._formatMessage(ms

python:我应该使用 ValueError 还是创建自己的子类来处理无效字符串?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhichexceptionshouldIraiseonbad/illegalargumentcombinationsinPython?我查看了python的内置异常,唯一看起来接近的是ValueError。来自python文档:exceptionValueError:Raisedwhenabuilt-inoperationorfunctionreceivesanargumentthathastherighttypebutaninappropriatevalue,andthesituationisnotdes

python - 子类化 numpy ndarray 问题

我想子类化numpyndarray。但是,我无法更改数组。为什么self=...不改变数组?谢谢。importnumpyasnpclassData(np.ndarray):def__new__(cls,inputarr):obj=np.asarray(inputarr).view(cls)returnobjdefremove_some(self,t):test_cols,test_vals=zip(*t)test_cols=self[list(test_cols)]test_vals=np.array(test_vals,test_cols.dtype)self=self[test_c

python - 如何更改子类python中的父属性

我有以下类(class)classFoo():data="abc"我把它子类化classBar(Foo):data+="def"我正在尝试编辑子类中的父类属性。我希望我的父类有一些字符串,我的子类应该向该字符串添加一些额外的数据。应该如何在Python中完成?我设计错了吗? 最佳答案 你问了两个问题:HowitshouldbedoneinPython?classBar(Foo):data=Foo.data+"def"Amiwrongbydesign?我通常不在Python中使用类变量。一个更典型的范例是初始化一个实例变量:>>>cl

python - 哪个异常通知子类应该实现一个方法?

假设我想在Python中创建一个抽象类,其中一些方法由子类实现,例如:classBase():deff(self):print"Hello."self.g()print"Bye!"classA(Base):defg(self):print"IamA"classB(Base):defg(self):print"IamB"我希望如果基类被实例化并且它的f()方法被调用,当self.g()被调用时,抛出一个异常告诉您子类应该实现方法g()。通常在这里做什么?我应该引发NotImplementedError吗?还是有更具体的方法? 最佳答案