Powiedzmy, że w powłoce Pythona (IDLE) zdefiniowałem kilka klas, funkcji, zmiennych. Utworzono również obiekty klas. Następnie usunąłem niektóre obiekty i utworzyłem kilka innych. Czy w późniejszym czasie mogę dowiedzieć się, jakie aktywne są aktywne obiekty, zmienne i definicje metod w pamięci?Jak uzyskać listę wszystkich zainicjowanych obiektów i definicji funkcji żywych w pythonie?
26
A
Odpowiedz
31
Tak.
>>> import gc
>>> gc.get_objects()
Nie jest to przydatne. Jest ich część. :-) Ponad 4000 już po uruchomieniu Pythona.
prawdopodobnie nieco bardziej przydatna jest aktywny wszystkie zmienne lokalnie:
>>> locals()
A jeden aktywny globalnie:
>>> globals()
(Zauważ, że „globalnie” w Pythonie nie jest naprawdę globalny Jako takie, musisz powyżej gc.get_objects()
, i że jest mało prawdopodobne, aby kiedykolwiek znaleźć przydatne, jak wspomniano).
4
Wypróbuj globals()
Dzięki. Dokładnie to, czego chciałem. Ale 'gc.get_objects()' daje ogromny zrzut. 'locals()' i 'globals()' ma się dobrze. – boring
Dobrze. get_objects dają to, o co prosiłeś, locals() i globals(), co chcesz. ;-) –