访问“属性”时,发送到另一个实例

时间:2012-09-04 12:07:24

标签: python

class x():
    def __init__(self):
        self.z=2

class hi():
    def __init__(self):
        self.child=x()

f=hi()
print f.z

我希望它能打印2

基本上我想将对该类的任何调用转发给另一个类。

2 个答案:

答案 0 :(得分:3)

最简单的方法是实施__getattr__

class hi():
    def __init__(self):
        self.child=x()

    def __getattr__(self, attr):
        return getattr(self.child, attr)

这有一些缺点,但它可能适用于您的有限用例。您可能还希望实施__hasattr____setattr__

答案 1 :(得分:0)

Python语法是:

class hi(x):

要说hi继承(应该是孩子)x

注意:为了使hi拥有属性z(因为这位于hi的{​​{1}}} __init__需要明确地在x.__init__中运行。也就是说,

x