如何直接访问组件的属性和方法?

2024-09-28 20:19:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中创建了一个复合类之后,是否有一种(简单的)方法可以直接访问组件的属性/方法?也就是说,没有指定属性/方法属于哪个组件

以下是MWE:

class Component1:
    def __init__(self, data1):
        self.data1 = data1

    def add1(self):
        return self.data1 + 1

class Component2:
    def __init__(self, data2):
        self.data2 = data2

    def add2(self):
        return self.data2 + 2



class Composite:
    def __init__(self, data1, data2):
        self.component1 = Component1(data1)
        self.component2 = Component2(data2)


composite = Composite(data1, data2)

# Now I can access data1 (and data2)
# But it is really cumbersome
composite.component1.data1



# So I would like to have just
composite.data1

有没有办法做到这一点,特别是当属性和方法的数量很多时?我知道我可以添加属性

@property
def data1(self):
    return self.component1.data1

但如果有大量的属性和方法,那将是痛苦的

编辑:

每个组件具有彼此不同的属性/方法名称。也没有共同的基础(例如,Component1().comp1_attibute_i或任何类似的基础)。名称末尾的数字在实际问题中并不存在(它只是用于简化)


Tags: 方法selfreturn属性initdef组件class