从Python中的类函数访问全局变量

时间:2014-02-04 13:42:02

标签: python class global-variables

我想得到一个可以在任何类的任何方法中使用的变量。

我是这样开始的:

class clasificadorDeTweet:

    """Funciones para clasificar tweets"""
    def fx():
        print trendingTopics

def iniciarConjuntoTrendingTopics():

    trendingTopics = ['EPN', 'PRI', 'Peña Nieto', 'México', 'PresidenciaMX', 'Osorio Chong', 'SEDENA', 'PEMEX', 'Reforma Energética', 'Guerra contra el narco', 'Reforma Fiscal', 'Los Pinos'];
    return set(trendingTopics)

global trendingTopics 
trendingTopics = iniciarConjuntoTrendingTopics()

x=clasificadorDeTweet()
x.fx

但我没有打印任何东西。我有什么问题?

2 个答案:

答案 0 :(得分:1)

您需要在x.fx之后添加() 调用

x.fx()

然而,这不是你唯一的问题; fx是一个实例方法,所以它需要self(按照惯例;你可以调用任何你想要的东西,但你需要有一些参数)作为第一个参数。

您可能还想在trendingTopics中使用unicode字符串,并在文件的开头声明源代码编码;在你的代码中嵌入非ASCII str可能会巧合地工作,然后在移动到另一个系统时可怕地破坏。

您在模块级别的global语句也几乎没有任何内容。在模块范围分配的变量已经是全局变量。

答案 1 :(得分:0)

如果要访问趋势主题,则必须在方法范围内将趋势主题声明为全局

def fx():global tredingTopics print tredingTopics