Я обнаружил странный код, касающийся внутренних переменных, поведение которых я не понимаю:
artist = "ABBA"
def printer(artist):
global internal_var
internal_var= "Queen"
print(artist,"is an artist")
internal_var = "U2" # I added this line
printer(artist)
printer(internal_var) # I thought this would be "U2" ...
print(internal_var) # I added this line; I thought this would be "U2" ...
Результат:
ABBA is an artist
Queen is an artist
Queen
Я полностью запутался. Во-первых, почему это не приводит к конфликту? Во-вторых, почему internal_var
не перезаписывается? В-третьих, как я могу перезаписать internal_var
?
Я думаю, что это можно использовать до определенной степени, но это приведет к большему количеству ошибок.
Пожалуйста, скажите мне, дублируется ли этот вопрос. (Я не смог найти подобного вопроса.) Заранее спасибо.