[英]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.