Прохождение учебника по Python в разделе 4.7.1 где-то хранится изменяемый аргумент по умолчанию, но я не могу найти его, используя dir()
, globals()
, locals()
или f.__dict__
. Я имею в виду этот код:
def f(a, L=[]):
L.append(a)
return L
ведет себя как:
>>> print(f(1))
[1]
>>> print(f(2))
[1, 2]
>>> print(f(3))
[1, 2, 3]
Я ожидал бы увидеть это в пространстве имен функции, скажем, когда я делаю dir(f)
, но его там нет.
Я просмотрел это, но это намного больше, чем я, вероятно, ищу .
f.__defaults__
, только что видел - person user3325563   schedule 19.09.2018f.__defaults__
доступен только для доступа к значениям по умолчанию. Различные реализации Python сохраняют значения функций по умолчанию в оптимизированных структурах данных. - person MisterMiyagi   schedule 19.09.2018