5
Jeśli zrobię prostą funkcję w Pythonie, posiada zarówno __dict__
i func_dict
jako atrybutów, z których oba zaczynają jako pustych słowniki:Co to jest func_dict?
>>> def foo():
... return 42
...
>>> foo.__dict__
{}
>>> foo.func_dict
{}
Jeśli dodać atrybut do foo
, to pojawia się w obu:
>>> foo.x = 7
>>> foo.__dict__
{'x': 7}
>>> foo.func_dict
{'x': 7}
Jaka jest różnica między tymi atrybutami? Czy istnieje konkretny przypadek użycia jednego nad drugim?
[* "Ta propozycja dodaje nowy słownik do obiektów funkcyjnych, zwany' func_dict' (aka '__dict__')." *] (Https: // www. python.org/dev/peps/pep-0232/) – CoryKramer