我想创建一个具有两个特征的类:
我想要这两个特性,因为我想自动继承前一个对象(基类对象)的所有属性和方法,而不必像使用__init__
方法那样做,因为这会导致已经重新计算计算初始化。而且由于会有很多方法和属性,我不认为这是一种手动操作的好方法。
我对代码的想法看起来像这样。
class BaseClass(object):
def __init__(self, name, date):
self.name = name
self.date = date
def get_name_date(self):
self.name_date = self.name +self.date
class UpperClass(BaseClass):
def __init__(self):
self.date_name = self.date + self.name
我知道上面的代码不起作用,我不想做类似的事情:
class UpperClass(BaseClass):
def __init__(self):
super(BaseClass, self).__init__(name, date)
self.date_name = self.date + self.name
因为这将重新进行我已有的计算。 也许继承不是我想要的,任何指针?
答案 0 :(得分:1)
这是你在找什么?
class BaseClass(object):
def __init__(self, name, date):
self.name = name
self.date = date
def get_name_date(self):
self.name_date = self.name +self.date
class UpperClass:
def __init__(self, baseobject):
self.baseobject = baseobject
self.date_name = baseobject.date + baseobject.name
def __getattr__(self, item):
return getattr(self.baseobject, item)
o1 = BaseClass('thmei', 'may')
o2 = UpperClass(o1)
print(o1.date) # may
print(o2.date) # may
print(o2.date_name) # maythmei