2017-01-29 11 views
-2

Как определить, является ли переменная в Python глобальной или локальной?Как определить, является ли переменная глобальной или локальной?

+1

Можете ли вы сказать больше о том, что вы делаете? Весьма необычно, что нужно иметь возможность определить, является ли переменная локальной или глобальной, и может быть лучший способ решить любую проблему, с которой вы сталкиваетесь. –

+0

Ну, для одного, если это не в 'globals()', то это определенно не глобально. –

+0

Привет, Мне нужно знать, являются ли переменные глобальными или локальными, потому что задача, которую я выполняю, требует документации, поэтому мне нужно записать несколько вещей. Я делаю охоту за сокровищами и создал несколько подпрограмм, чтобы пользователь выбирал размер сетки, вводил их движения и т. Д. В подпрограмме выбора размера сетки я использовал переменную под названием «выбор», но также использовал эту в главном s/r для учета того, какой выбор сделан в главном меню. В этом случае переменная глобальная, поскольку она используется несколько раз для разных процессов или локальных? – Ellie

ответ

2

Глобалы() возвращает Dict глобальных переменных

местные жители() возвратит Dict локальных переменных

, чтобы проверить, если объем переменной:

if 'variable' in locals(): print("It's local") #Replace 'variable' with the variable 
elif 'variable' in globals(): print("It's global") #But keep the quotation marks 
else: print("It's not defined") 

Если вы не знаю о scopes, heres хорошая страница, чтобы перейти к https://stackoverflow.com/a/292502/7486769

+0

Привет, как это использовать для проверки? Пожалуйста, несите меня, потому что я всего лишь студент и не имею большого понимания с точки зрения python. Если я просто вставьте это в нижней части моего кода, он выведет переменные, которые являются глобальными/локальными? – Ellie

+2

Я бы изменил порядок 'var в globals()' и 'var в locals()'. Когда var находится в 'locals', а в' globals' будет использоваться локальная переменная. – ovs

+2

BTW 'globals()' и 'locals()' возвращает 'dict' не' list' –

0

Если все, что вы делаете, составляет список для какой-либо документации, все, что вам нужно сделать, это создайте список переменных, которые определены вне любой функции или класса.

var1 = "something" 

def foo(): 
    var2 = "something" 

В приведенном выше описании, var1 является глобальным, var2 имеет локальный характер.

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

  • Нет связанных вопросов^_^