在类

时间:2015-06-26 20:29:24

标签: python python-3.x

我有2个文件:

variables.py:

global var
var = 'test'

和main.py:

import variables

class functionsclass:

    def __init__(self):
        self.testfunction()


    def testfunction(self):
        print(variables.var)

functionsclass()

不起作用,因为'variables.var'没有指向'test'。 我必须写什么才能访问变量'var'? 我不想使用参数,我只想访问全局变量。

编辑:抱歉。我很笨在我的原始文件中,我将错误的var设置为全局,这就是我无法访问它的原因。

干杯

2 个答案:

答案 0 :(得分:0)

我尝试了你的repro,它对python2python3都适用。 <{1}}关键字确实something different并且不需要,但不会受到伤害。

[另外,FWIW我建议使用新式的课程,例如global]

答案 1 :(得分:0)

我也试过你的代码,它确实对我有用: - 成功打印“test”。由于你的代码没有运行,我没有看到任何错误。

听起来可能很愚蠢,但只需检查两个文件(variables.pymain.py)是否在同一目录中。因为,将这两个文件保存在单独的目录中会使其无法访问。

并且,您能否尝试对main.py文件进行以下修改,并检查其是否有效: -

from variables import var

class functionsclass:

    def __init__(self):
        self.testfunction()


    def testfunction(self):
        print(var)

functionsclass()