【问题标题】:Passing Object of SuperClass to the SubClass Constructor in Python在 Python 中将 SuperClass 的对象传递给 SubClass 构造函数
【发布时间】:2020-06-25 12:54:28
【问题描述】:
class super(object):
    def __init__(self, **kwargs):
        self.abc = kwargs.pop('abc', None)
        self.xyz = kwargs.pop('xyz', None)

class sub(super):
    def __init__(self, *args, **kwargs):
        super().__init__(**kwargs)
        self.pqr = kwargs.pop('pqr', None)
        self.sty = kwargs.pop('sty', None)

obj_super = super(abc=abc, xyz=xyz)
obj_sub = sub(obj_super, pqr=pqr, sty=sty)

我想通过obj_sub 访问为对象obj_super 设置的属性值。 比如:obj_sub.obj_super.abc

【问题讨论】:

  • 类名的第一个字母通常写成大写。此外,您不应将类命名为内置方法,例如超级。
  • 由于您继承了Sub类中的Super类,因此可以使用obj_sub.abc从子类中访问超类属性我认为您应该参考Official Docs或参考一些在线教程

标签: python oop object inheritance


【解决方案1】:
class super(object):
    def __init__(self, **kwargs):
        self.abc = kwargs.pop('abc', None)
        self.xyz = kwargs.pop('xyz', None)
        
    
    
        

class sub(super):
    def __init__(self, *args, **kwargs):
        super().__init__(**kwargs)
        self.pqr = kwargs.pop('pqr', None)
        self.sty = kwargs.pop('sty', None)
        self.contain = args[0]

    
    

obj_super = super(abc=1, xyz = 2)

obj_sub = sub(obj_super, pqr =3, sty=4)
print(obj_sub.contain.abc)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 2012-07-09
    • 2020-07-22
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    相关资源
    最近更新 更多