#python #variables
#питон #переменные #python
Вопрос:
Я хочу создать переменную, которая не является глобальной для скрипта, но является локальной внутри функции, однако была создана в цикле for, так как я могу разблокализовать переменную из цикла for и вместо этого сделать функцию ее родительской? например:
def my_function(Array):
for i in Array:
if ... :
Item=i # 'Item' is the variable created in the loop which i want to make local
# to the function instead of just local to only the for loop.
Я уже знаю о вызове null
(или None
) переменных заранее, но я не хочу этого делать, я должен создать переменную в цикле for.
Обратите внимание, что это псевдокод
Также я не включил условие оператора if, потому что в нем нет необходимости, поскольку это всего лишь пример.
Комментарии:
1. Вы понимаете правила определения области видимости python? Цикл здесь не создает область видимости
2. @RobinZigmond. Я думаю, вы путаете Python и JavaScript. В Python нет «let» или «var».
3. @RobinZigmond , я не уверен, о чем ты говоришь. Проверьте свой синтаксис, поскольку, похоже, это JavaScript.
4. В Python все переменные, не входящие в лямбда-выражение или понимание, имеют область действия функции. В вашей исходной программе
i
будет иметь любое значение, которое оно в последний раз получило в конце цикла. Если в вашей программе вы просто «прерываете» после «if»,i
будет иметь значение, которое вы хотите. Однако вам, возможно, придется беспокоиться о том, что произойдет, если массив пуст.5. ой, извините всех — я действительно думал, что это вопрос Javascript, извиняюсь и, пожалуйста, игнорируйте мой (теперь удаленный) комментарий
Ответ №1:
Определите var внутри функции, и он будет изменен циклом for при запуске, а затем верните его, чтобы перенести его за пределы функции.
Комментарии:
1. Мне нужно создать переменную внутри цикла for, я не хочу ее предварительно определять.
2. Вы сказали, что не хотите, чтобы она была определена глобально. Существует разница между глобальной переменной и переменной, определенной внутри функции.