Здравейте,
Докато си писах домашното днес, написах нещо което се държи доста странно за мен. Нещото беше нещо такова:
is_happy(a = []):
print a
a.append("asd")
is_happy()
is_happy()
Изход: [] ['asd']
Отне ми известно време да разбера, че от това ми се чупи програмата. Поразрових се в нета и намерих това:
The "default value" for a function parameter in Python is instantiated at function declaration time, not every time the function is called. You rarely want to mutate the default value of a parameter, and so it's often a good idea to use something immutable for the default value.
Може ли някой да ми каже защо това работи така. Освен някаква preformance оптимизация.
Мерси предварително.