我在一個python shell中工作,幾周前我定義了一個引用非常重要的列表的變量。殼始終打開,但我忘記了這個名字。如何獲得我所定義的所有全局名稱的列表?Python - 如何獲得我所定義的所有全局名稱的列表?
1
A
回答
5
所有的全局變量或只是用戶定義的變量?
>>> globals()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}
>>> x=2
>>> globals()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'x': 2, '__doc__': None, '__package__': None}
爲了讓你定義自己的事情,似乎你可以從這個列表中篩選出的所有鍵值對,其密鑰不匹配正則表達式"__.*?__$"
。
UPDATE
這是一個更好的答案:
$ python
Python 2.7.1 (r271:86832, Jun 5 2011, 15:52:25)
[GCC 4.2.1 (Apple Inc. build 5659)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x = 3
>>> import re
>>> [name for name in dir() if not re.match(r'__.*?__$', name)]
['re', 'x']
在這裏,我已經排除開頭,以兩個下劃線結束特殊的名字,所以如果你使用了他們自己,他們將不會顯示。正則表達式的末尾的$
以防止接受__abc__1
。此外,我切換到dir()
,它在當前範圍內獲取符號,但不一定是全局符號,但似乎更清晰。它不會像globals()
那樣添加領先列表理解變量。
6
使用dir()
例如,
>>> x = 666
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'x']
1
您可以檢查globals()
,顯示所有的模塊級的變量,或locals()
,這是當地的範圍。在提示中,這些是相同的。此外,vars()
顯示所有可用的名稱,不管你在哪裏。
2
您是否已啓用readline
?你可以查看你的翻譯歷史,找到你想要的。我認爲這比挖掘globals()
或dir()
容易。
相關問題
- 1. Python的全局名稱沒有定義
- 2. 如何獲得所有全局變量
- 3. 如何獲得包含所有Actionscript 3 api名稱的列表?
- 4. Python - 全局名稱沒有定義
- 5. Python:沒有定義全局名稱'foobar'
- 6. 獲取項目中定義的所有燈具名稱列表
- 7. 如何從'pyspark.sql.types.Row'獲得所有列/屬性的名稱?
- 8. 我如何獲得所有Python標準庫模塊的列表
- 9. 全局名稱「RegistrationForm」沒有定義
- 10. 我如何獲得gtk.TexTagTable中所有標籤的名稱?
- 11. 如何獲得具有所有已定義類別名稱的數組?
- 12. NameError:沒有定義全局名稱'pair'
- 13. NameError:全局名稱「ERROR_DEFS」沒有定義
- 14. NameError:全局名稱「codepoint2name」沒有定義
- 15. NameError:未定義全局名稱'sourceText'+ python列表比較
- 16. 全局名稱在Python未定義
- 17. 全局名稱未定義Python 3
- 18. python NameError:未定義全局名稱'multiprocessing'
- 19. Python:未定義全局名稱'xxx'
- 20. Python「NameError:全局名稱」nameCheck「未定義。」
- 21. python wxpython全局名稱未定義
- 22. Python錯誤:未定義全局名稱
- 23. Python Timeit和「全局名稱...未定義」
- 24. Python編程:未定義全局名稱'is_within'。我使用的過濾器列表
- 25. NameError:沒有定義全局名稱'reverse'
- 26. NameError:全局名稱「imfilter」沒有定義
- 27. 如何獲得MATLAB中特定目錄中所有目錄名稱和/或所有文件的列表?
- 28. 如何更新具有特定列名稱的所有表格
- 29. NameError:全局名稱'Circulo_Mohr_v1_2'沒有定義
- 30. 如何獲得我所有的實體映射表的列表?
謝謝!用戶定義應該更有用 – psihodelia
@psihodelia對,編輯答案。如果你喜歡,我可以添加代碼來過濾字典。 –
謝謝,我發佈了一個關於它的新問題 – psihodelia