繁体   English   中英

带参数的类继承

[英]Class Inheritance with parameters

我有一个父类和几个子类。 每个子类都接受不同的参数,但是所有子类都有一些公共参数。 我不想为每个子类编写“通用参数”。 我怎样才能做到这一点?

class Parent:
    def __init__(self, name):
        self.name = name


class Subclass(Parent):
    def __init__(self, age):
         self.age = age

    def do_something(self):
         print(self.name)


instance = Subclass(name="Test", age=42)
instance.do_something()  # 42

您可以尝试以下方法:

class Subclass(Parent):
    def __init__(self, **kwargs):
         super().__init__(kwargs['name'])
         self.age = kwargs['age']

    def do_something(self):
         print(self.name)

然后像在问题中一样使用它:

instance = Subclass(name="Test", age=42)

我以以下方式使用

您可以根据需要添加任意多个子类

class ParentClass(object):
    def __init__(self,baseArgs):
        self.var1=baseArgs['var1']
        self.var2=baseArgs['var2']
        self.var3=baseArgs['var3']


class ChildClass(ParentClass):
    def __init__(self,childArgs,baseArgs):
        super(ChildClass, self).__init__(baseArgs)
        self.cvar1=childArgs['cvar1']
        self.cvar2=childArgs['cvar2']

a=ChildClass({'cvar1':40,'cvar2':50},{'var1':10,'var2':20,'var3':30})
print(a.var1)
# 10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM