в этом примере мне нужно включить глобальное ключевое слово.Я читал в другом месте по обмену стека, что неизменяемым объектам нужно глобальное ключевое слово.
def foo(param):
global message
message += param
message = " hello "
foo("world")
print(message)
, но в этом примере, используя списки, которые являются изменяемыми, я также нуждаюсь в глобальном ключевом слове.
def foo(param):
global message
message += [ param ]
message = [ "hello" ]
foo("world")
print(message)
но в этом примере я создаю объект «контейнер», который позволяет мне заранее перейти к глобальному ключевому слову.
class container:
def __init__(self):
self._message = ""
def __str__(self):
return self._message
def add(self, param):
self._message += param
def foo(param):
message.add(param)
message = container()
message.add(" hello ")
foo("world")
print(message)
Каковы правила использования глобального ключевого слова?Это кажется противоречивым