2015-06-23 6 views
0

Мне нужно передать значение созданного в рамках метода класса функции или процедуры или четкости или все, что называется, в «основной программе»Глобальные переменные/Классы

global myValue 

class CalcFrame(object): 
     def clearFunc(self): 
       myValue = 12 

def getUrl(): 
     print myValue 

Это была моя идея, очевидно, он не работает:

я этот код, то я создать объект

x = CalcFrame() 

вызвать метод, который должен установить глобальный

x.clearFunc() 

затем вызвать функцию, которая должна печатать его

getUrl() 

получить ошибку

NameError: global name 'myValue' is not defined

+2

Это не то, как работает глобальное ключевое слово. –

+0

Возможный дубликат [Использование глобальных переменных в функции, отличной от той, которая их создала) (http://stackoverflow.com/questions/423379/using-global-variables-in-a-function-other-than-the- один-что созданный-им) – cpburnz

ответ

7

Это не то, как используется global ключевое слово.

Оно должно быть использовано таким образом, вместо того, чтобы

myValue = None 

class CalcFrame(object): 
    def clearFunc(self): 
      global myValue 
      myValue = 12 

В двух словах, global позволяет функции, чтобы изменить переменную, которая существует в глобальной области. См. Здесь для получения дополнительной информации: https://docs.python.org/2/faq/programming.html#what-are-the-rules-for-local-and-global-variables-in-python

Смежные вопросы