构造函数中的变量赋值

时间:2017-07-28 12:26:33

标签: python constructor variable-assignment

我对构造函数中的变量赋值有一个问题:我有一个构造函数,它接受参数'context'。首先,我将此变量赋值给一个类变量。其次,我创建了另一个类,它也将'context'作为参数。

我的问题:将类变量(self.context)或构造函数(context)中的参数赋值给新创建的类更好吗?

class State():
    def __init__(self, context):
        self.context = context           
        self.diconnected = Disconnected(self.context)

class State():
        def __init__(self, context):
            self.context = context           
            self.diconnected = Disconnected(context)

3 个答案:

答案 0 :(得分:2)

最终结果是一样的。 Disconnected(context)只是略短且更快。

答案 1 :(得分:0)

这实际上不会在Python中以任何重要方式影响您的程序执行时间。这可能最重要的唯一情况是多个线程可能正在使用此数据。为了以防万一,我总是使用这个论点。

答案 2 :(得分:0)

没有客观“更好”;在任何情况下,你都将同一个对象传递给Disconnected

您编写哪一个取决于您要强调的依赖关系:Disconnectedself具有相同的上下文(这也意味着self总是有一个),或者它将上下文作为参数传入。