Как определить, является ли переменная в Python глобальной или локальной?Как определить, является ли переменная глобальной или локальной?
ответ
Глобалы() возвращает 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
Привет, как это использовать для проверки? Пожалуйста, несите меня, потому что я всего лишь студент и не имею большого понимания с точки зрения python. Если я просто вставьте это в нижней части моего кода, он выведет переменные, которые являются глобальными/локальными? – Ellie
Я бы изменил порядок 'var в globals()' и 'var в locals()'. Когда var находится в 'locals', а в' globals' будет использоваться локальная переменная. – ovs
BTW 'globals()' и 'locals()' возвращает 'dict' не' list' –
Если все, что вы делаете, составляет список для какой-либо документации, все, что вам нужно сделать, это создайте список переменных, которые определены вне любой функции или класса.
var1 = "something"
def foo():
var2 = "something"
В приведенном выше описании, var1
является глобальным, var2
имеет локальный характер.
Можете ли вы сказать больше о том, что вы делаете? Весьма необычно, что нужно иметь возможность определить, является ли переменная локальной или глобальной, и может быть лучший способ решить любую проблему, с которой вы сталкиваетесь. –
Ну, для одного, если это не в 'globals()', то это определенно не глобально. –
Привет, Мне нужно знать, являются ли переменные глобальными или локальными, потому что задача, которую я выполняю, требует документации, поэтому мне нужно записать несколько вещей. Я делаю охоту за сокровищами и создал несколько подпрограмм, чтобы пользователь выбирал размер сетки, вводил их движения и т. Д. В подпрограмме выбора размера сетки я использовал переменную под названием «выбор», но также использовал эту в главном s/r для учета того, какой выбор сделан в главном меню. В этом случае переменная глобальная, поскольку она используется несколько раз для разных процессов или локальных? – Ellie