在类和方法之间共享变量

时间:2016-07-19 23:09:29

标签: python python-2.7

我是OOP语言的新手,我有一个场景,我想在两个都有方法的类之间共享一个变量。在Class One中,我有一个带变量var1的函数。我想把这个变量提供给我的班级二,func2然而我不确定如何实现这一点?

class One(object):

    def func1(self):
        var1 = 'foo'

class Two(object):

    def func2(self):
    # how can i get var1 here ?

1 个答案:

答案 0 :(得分:0)

如果其中一个类实际上可以是另一个类的子类,则可以使用继承。

class One(object):

    def func1(self):
        var1 = 'foo'

class Two(One):

    # func1 already exists here.
    # So does var1

您可以使函数接受参数

class One(object):

    def func1(self):
        var1 = 'foo'

class Two(object):

    def func2(self, var):
        # Use var

或者您可以使用全局变量,但我认为如果您只是输入OOP,则希望避免这种情况。

注意:让我指出在较大的项目和程序中使用全局变量在实践中容易出现许多错误。您可以使用它,直到您有经验转到另一种方法。但最终你必须在OOP中退出使用它们。我建议它仅用于练习目的。编码时请记住这一点。

编辑:在您的情况下,您可能希望使用静态类元素,例如。

class One(object):
    var1 = "foonimo"
    def func1(self):
        #use var1

class Two(object):

    def func2(self, var):
        # Use as One.var1

这应该有效,并且它比全局变量更可行。