Python中的全局静态变量

7 投票
2 回答
41626 浏览
提问于 2025-04-16 04:02
def Input():
    c = raw_input ('Enter data1,data2: ')
    data = c.split(',')
    return data

我需要在其他函数中使用列表 data,但我不想每次都输入 raw_input。我该如何像在 C++ 中那样,把 data 变成一个 全局静态 的东西,让它可以在任何需要的地方使用呢?

2 个回答

4

使用全局变量通常被认为是不好的做法。更好的方法是使用合适的面向对象编程,把“数据”放在一个合适的类或对象里,比如:

class Questionaire(object):
    def __init__(self):
        self.data = ''

    def input(self):
        c = raw_input('Enter data1, data2:')
        self.data = c.split(',')

    def results(self):
        print "You entered", self.data

q = Questionaire()
q.input()
q.results()
18

在你的函数里加上 global 关键字:

def Input():
    global data
    c = raw_input ('Enter data1,data2: ')
    data = c.split(',')
    return data

global data 这个声明是用来把 data 变成一个全局变量的。也就是说,在调用 Input() 之后,你就可以在其他函数里使用 data 了。

撰写回答