代码之家  ›  专栏  ›  技术社区  ›  Denis

python中的全局静态变量

  •  5
  • Denis  · 技术社区  · 14 年前
    def Input():
        c = raw_input ('Enter data1,data2: ')
        data = c.split(',')
        return data
    

    我需要使用列表 data 在其他函数中,但我不想输入 raw_input 每一次。我怎样才能做到 数据 像一个 全局静态 在C++中把它放在需要的地方吗?

    2 回复  |  直到 14 年前
        1
  •  13
  •   Greg Hewgill    14 年前

    为函数添加一行:

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

    这个 global data 声明是一种声明 data 全局变量。打电话后 Input() 你可以参考 数据 在其他功能中。

        2
  •  4
  •   Ivo van der Wijk    14 年前

    使用全局变量通常被认为是不好的做法。最好使用适当的对象方向并将“数据”包装在适当的类/对象中,例如

    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()