草庐IT

Inheritance

全部标签

python - 如何在 python 中覆盖父类的函数?

我在父类中有一个私有(private)方法def__pickSide(self):,我想在子类中覆盖它。但是,子类仍然调用继承的def__pickSide(self):。我怎样才能覆盖这个功能?子类的函数名与父类的函数名完全相同。 最佳答案 让我们看一个最简单的例子:fromdisimportdisclassA(object):def__pick(self):print"1"defdoitinA(self):self.__pick()classB(A):def__pick(self):print"2"defdoitinB(self)

python - 访问父类(super class)属性

您好,我想在python中实现以下功能,但是我不知道用什么替换super.a=b行:classSuper:def__init__(self):self.a=1classSub(Super):defmethod(self,b):super.a=b 最佳答案 一个Sub是一个Super,即Sub的所有实例都可以像super。在您的情况下,这意味着您只需设置self.a=b。 关于python-访问父类(superclass)属性,我们在StackOverflow上找到一个类似的问题:

python - Django多表继承,如何知道哪个是模型的子类?

我在Django中遇到多表继承问题。让我们以银行账户为例。classaccount(models.Model):name=models……classaccounttypeA(account):balance=models.float…..defaddToBalance(self,value):self.balance+=valueclassaccounttypeB(account):balance=models.int….#NOTEthisdefaddToBalance(self,value):value=do_some_thing_with_value(value)#NOTEthis

python - WCF 和 Python SUDS 之间用于继承的 XML 差异?

我有一个关于WCF和SUDS(Python)之间表示继承的不同方式的问题。我有一个C++/CLIWCF服务器(.NET3.5SP1),我正在尝试与它通信。我使用了C#(也包括WCF)客户端,它工作正常,但在使用SUDS客户端(Python2.6.4、SUDS0.3.8)时出现问题。它大部分都很好,但对于继承的类型,区别似乎在于两者在SOAPXML中表示继承的方式。当我查看服务器记录的消息时,我得到类似于以下内容的结果:C#客户端:...Python客户端:...是否可以更改WCF服务器以接受Python样式?或者更改PythonSUDS客户端以发送WCF样式?哪一个是正确的?

python - WCF 和 Python SUDS 之间用于继承的 XML 差异?

我有一个关于WCF和SUDS(Python)之间表示继承的不同方式的问题。我有一个C++/CLIWCF服务器(.NET3.5SP1),我正在尝试与它通信。我使用了C#(也包括WCF)客户端,它工作正常,但在使用SUDS客户端(Python2.6.4、SUDS0.3.8)时出现问题。它大部分都很好,但对于继承的类型,区别似乎在于两者在SOAPXML中表示继承的方式。当我查看服务器记录的消息时,我得到类似于以下内容的结果:C#客户端:...Python客户端:...是否可以更改WCF服务器以接受Python样式?或者更改PythonSUDS客户端以发送WCF样式?哪一个是正确的?

python - Sklearn Pipeline - 如何在自定义 Transformer(不是 Estimator)中继承 get_params

我在scikit-learn中有一个管道,它使用我定义的自定义转换器,如下所示:classMyPipelineTransformer(TransformerMixin):定义函数__init__,fit()andtransform()但是,当我在RandomizedSearchCV中使用管道时,出现以下错误:'MyPipelineTransformer'objecthasnoattribute'get_params'我已经在线阅读(例如下面的链接)(Python-sklearn)HowtopassparameterstothecustomizeModelTransformerclass

python - Sklearn Pipeline - 如何在自定义 Transformer(不是 Estimator)中继承 get_params

我在scikit-learn中有一个管道,它使用我定义的自定义转换器,如下所示:classMyPipelineTransformer(TransformerMixin):定义函数__init__,fit()andtransform()但是,当我在RandomizedSearchCV中使用管道时,出现以下错误:'MyPipelineTransformer'objecthasnoattribute'get_params'我已经在线阅读(例如下面的链接)(Python-sklearn)HowtopassparameterstothecustomizeModelTransformerclass

python:继承或组合

假设我有一个class,它使用dict的一些功能。我曾经在内部合成一个dict对象,并提供一些外部访问,但最近想简单地继承dict并添加一些我可能需要的属性和方法。这是一个好方法,还是我应该坚持组合? 最佳答案 继承经常被滥用。除非您的类(class)旨在用作具有额外功能的通用词典,否则我会说组合是可行的方法。节省转接电话通常不是选择继承的充分理由。摘自《设计模式》一书:FavorobjectcompositionoverclassinheritanceIdeallyyoushouldn'thavetocreatenewcompon

python:继承或组合

假设我有一个class,它使用dict的一些功能。我曾经在内部合成一个dict对象,并提供一些外部访问,但最近想简单地继承dict并添加一些我可能需要的属性和方法。这是一个好方法,还是我应该坚持组合? 最佳答案 继承经常被滥用。除非您的类(class)旨在用作具有额外功能的通用词典,否则我会说组合是可行的方法。节省转接电话通常不是选择继承的充分理由。摘自《设计模式》一书:FavorobjectcompositionoverclassinheritanceIdeallyyoushouldn'thavetocreatenewcompon

python - 是否可以动态继承仅在 python 运行时才知道的类?

我想通过Bar类扩展Foo类,我遇到的问题是我无法以通常的方式扩展它(classFoo(Bar))因为Bar类是动态生成的。我做了这个小例子来说明我想要的结果:classBar:defsuper_cool_function():print("Cool")classFoo:def__init__(self,another_class):#IwanttoextendFoobyanother_class#Desiredresultfoobar=Foo(Bar)foobar.super_cool_function()同样,这不是我要找的东西:classFoo(Bar):passfoobar=F