Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Global static variables in Python

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

I need to use list data in other functions, but I don't want to enter raw_input everytime. How I can make data like a global static in c++ and put it everywhere where it needed?

like image 576
Denis Avatar asked Sep 12 '10 11:09

Denis


2 Answers

Add the global keyword to your function:

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

The global data statement is a declaration that makes data a global variable. After calling Input() you will be able to refer to data in other functions.

like image 93
Greg Hewgill Avatar answered Sep 28 '22 12:09

Greg Hewgill


using global variables is usually considered bad practice. It's better to use proper object orientation and wrap 'data' in a proper class / object, e.g.

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()
like image 44
Ivo van der Wijk Avatar answered Sep 28 '22 12:09

Ivo van der Wijk