Denis
Denis

Reputation: 7323

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?

Upvotes: 7

Views: 43945

Answers (2)

Greg Hewgill
Greg Hewgill

Reputation: 992707

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.

Upvotes: 18

Ivo van der Wijk
Ivo van der Wijk

Reputation: 16775

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

Upvotes: 4

Related Questions