繁体   English   中英

Python:在基类中使用派生类属性

[英]Python: Using derived class attributes in base class

当我遇到这个特定代码时,我正在阅读一些代码,其中基类方法打印一些来自派生类的属性,调用方法的对象来自派生。

class A(object):
  def printFreak(self):
    print self.derived_attrib

class B(A):
  def __init__(self, num):
    self.derived_attrib = num

my_obj = B(10)
my_obj.printFreak()

由于我之前没有见过这样的行为(比如在C ++中),我无法理解这一点。

任何人都可以帮我理解这一点,这是如何工作的? 这可能与C ++的一些概念有关吗?

在Python中,属性在运行时被解析,因此它只是在self引用的对象中查找名为derived_attrib的属性,并发现有一个属性。

只要derived_attrib被声明为A字段然后在B分配,它就可以在C ++中工作,因为编译器将能够找出A的方法中self.derived_attrib含义。

暂无
暂无

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

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