【发布时间】:2017-08-02 10:35:21
【问题描述】:
我有以下 sn-p:
class one(xyz):
def __init__(self,...):
....
def myfunction(self,p,q):
....
self.dummy_ = 1
self.corr_ = 3
return self
class two(one):
....
class three(one):
在这里,我希望 myfunction() 在 class two 中仅返回 self.corr_ 而不是 self.dummy_,但希望在 class three 中返回所有 self.dummy_ 和 self.corr_。
实现此目的的一种方法是在从基类中删除函数后在两个类中编写相同的函数。但是有没有办法在不将myfunction() 带出class one 的情况下完成这项任务。
【问题讨论】:
-
您正在返回
self,这意味着整个对象,而不仅仅是那些特定的值。您的对象是否包含dummy_属性?如果它不应该包含它,那么也许你不应该继承一个一开始就有的类。 -
除了@deceze 回答,看看抽象类
-
我首先从
xyz继承,它没有dummy_和corr_,我在函数内部定义它,然后返回整个对象。我错过了什么吗? -
xyz根本不重要。您继承自一个 确实 定义这些属性的类 (one)。所以two和three也应该展示它们。 -
所以,这就是我想问的问题,有没有办法可以修改
one中的代码,以便self.dummy_继承three而不是two。
标签: python python-3.x function class