Странное поведение инициализации класса PythonPython

Программы на Python
Ответить
Anonymous
 Странное поведение инициализации класса Python

Сообщение Anonymous »

Код: Выделить всё

class A:
def __init__(self, files=[]) -> None:
print(len(files))
files.append('hello')

class B:
def __init__(self) -> None:
self.file_one = A()

def f(self):
# ! files default to ['hello'], why?
self.file_two =A()

B().f()
Над кодом: Похоже, что в file_two он наследует значение по умолчанию files от file_one. Я столкнулся с ошибкой из-за этого поведения. Может ли кто-нибудь объяснить это?

Подробнее здесь: https://stackoverflow.com/questions/792 ... d-behavior
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»