有没有办法将属性值从基类的对象复制到派生类的对象?
class Base():
def __init__(self):
self.a = 10
self.b = None
class Derived(Base):
self.c = 30
def main():
base = Base()
base.b = 20
derived = Derived(base)
我试图找到一种更复杂的pythonic来复制基类对象的值,因为基类有很多变量,但是我找不到一个简洁的方法。
我想要变量"派生"得到它的价值" a = 10 b = 20 c = 30"。
答案 0 :(得分:2)
不如何进行继承。您将基类的实例传递给派生类的__init__
,这与继承其属性完全无关。相反,做:
class Base():
def __init__(self):
self.a = 10
class Derived(Base):
def __init__(self):
super(Derived, self).__init__() # calls Base.__init__
self.b = 'abc'
def main():
base = Base()
derived = Derived()
答案 1 :(得分:0)
如何使用默认参数?
class Base():
def __init__(self, a=10):
self.a = a
class Derived(Base):
def __init__(self, a=10, b=None):
super().__init__(a) # python 3
# Base.__init__(self, a) # python 2
self.b = b or 'abc'
def main():
base = Base()
derived = Derived()
print(base.a)
print(derived.a, derived.b)
main()
# output:
# 10
# 10 abc
还要注意你如何调用'构造函数'负责设置__init__
。
self.a