Python中的全局静态变量
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
了。