我能给它传递一个类变量吗';在python中初始化类时,调用其他变量

我能给它传递一个类变量吗';在python中初始化类时,调用其他变量,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我有一个名为BaseClass的类,如下所示 class BaseClass(object): def __init__(self, context): self.context = context 我还有一些其他类是从基类派生的,比如 BaseSubClass(object): def __init__(self, context=None): self.context = context def method1(self):

我有一个名为
BaseClass
的类,如下所示

class BaseClass(object):
    def __init__(self, context):
        self.context = context
我还有一些其他类是从基类派生的,比如

BaseSubClass(object):
    def __init__(self, context=None):
        self.context = context

    def method1(self):
        """"Do stuff here """

    def method2(self):
        """"Do stuff here """

    def method3(self):
        """"Do stuff here """
然后我有了类,它们是BaseSubClass的子类

class Class1(BaseSubClass):

    def get_something(self):
         """Perform some actions here on the basis of the context passed in self"""
        context = self.context
        return 'abcd'

    @property
    def data(self):
        return self.get_something()

class Class2(BaseSubClass):

    def get_something(self):
         """Perform some actions here on the basis of the context passed in self"""
        context = self.context
        return 'abcdewewew'

    @property
    def data(self):
        return self.get_something()



class Class3(BaseSubClass):

    def get_something(self):
         """Perform some actions here on the basis of the context passed in self"""
        context = self.context
        return 1221212

    @property
    def data(self):
        return self.get_something()
最后我要做的是

class MainClass(BaseClass):
    c1 = Class1()
    c2 = Class2()
    c3 = Class3()
我想做的是。当我创建
BaseClass
对象时,我希望以某种方式将
context
变量传递给它的属性类,也就是
c1、c2、c3
,这样当我访问该实例的属性时,我将在第一时间获得计算出的数据。像

obj = MainClass(context)
obj.c1.data    # at this time it should return the actual data which will be depend on the context variable.
如果我将属性用作proerty,这是可能的。像

@property
def c1(self):
    return Class1(context=self.context).data

@property
def c2(self):
    return Class2(context=self.context).data

但是我想知道,如果我能将wrapper类变量传递给我在这个wrapper类中实例化的类

这样做行不通。如果实例化基类,则只能访问基类中可用的方法。您必须用数据实例化子类。但另一方面。整个结构看起来很可怕。我几乎可以肯定,有更好的方法来实现您所需要的一切……听起来您可能想重新思考您的设计。实际上,我已经完成了这项任务。在我需要对象上下文的地方,我已将上下文分配给对象
obj.context=self.context
,然后调用方法obj.method。我只是想知道有没有办法,但这样不行。如果实例化基类,则只能访问基类中可用的方法。您必须用数据实例化子类。但另一方面。整个结构看起来很可怕。我几乎可以肯定,有更好的方法来实现您所需要的一切……听起来您可能想重新思考您的设计。实际上,我已经完成了这项任务。在我需要对象上下文的地方,我已将上下文分配给对象
obj.context=self.context
,然后调用方法obj.method。我只是想看看有没有办法。