私はPythonシェルで作業し、数週間前に非常に重要なリストを参照する変数を定義しました。シェルは常に開いたままですが、私はこの名前を忘れてしまいました。私が今までに定義したすべてのグローバル名のリストを取得するには?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']
私が始まり、2つのアンダースコアで終わる特別な名前を除外してきたので、あなたは彼ら自身使用した場合、彼らは表示されません。正規表現の末尾にある$
は、受け入れを防ぐために__abc__1
です。また、私はdir()
に切り替えました。これは現在のスコープでシンボルを取得しますが、必ずしもグローバルシンボルではありませんが、よりクリーンであるようです。 globals()
のような先頭のリスト内包変数は追加されません。
6
使用dir()
例えば、
>>> x = 666
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'x']
1
ローカルスコープで、すべてのモジュールレベル変数、またはlocals()
を示しており、globals()
を調べることができます。プロンプトでは、これらは同じです。また、vars()
には、どこにいても利用可能なすべての名前が表示されます。
2
readline
が有効になっていませんか?インタプリタの履歴を見て、あなたが望むものを見つけることができます。 globals()
またはdir()
を掘るよりも簡単だと思います。
関連する問題
- 1. pythonでavroスキーマで定義されたレコード名を取得するには?
- 2. Pythonでグローバル変数としてリストを定義する
- 3. のPythonユーザ定義クラスのソートされたリストを取得しますが
- 4. 私はnormalizrスキーマで定義されたすべてのキーのリストを取得しようとしている
- 5. python - グローバル名<function>は定義されていません
- 6. Pythonのエラー: "グローバル名 'カウンタ' が定義されていません"
- 7. すべてのアプリケーションで、どこでdokku nginxのログフォーマットをグローバルに定義して設定できますか?
- 8. Python:グローバル名は定義されていません(しかし、グローバル変数ではありません)
- 9. NameErrorは:グローバル名が別の.pyファイルで定義されたグローバル変数で定義されていない
- 10. Python-Mysql NameError:グローバル名 'save_to_db'が定義されていません
- 11. Pythonグローバル名 'urls'が定義されていません。
- 12. Python - グローバル名が定義されていません
- 13. @Python - NameError:グローバル名 'select'が定義されていません
- 14. Python Tkinter - グローバル名Tk()が定義されていません
- 15. Python NameError:グローバル名 'score'が定義されていません
- 16. AutoMapper定義されたマッピングから、定義されたすべてのマッピングを取得します
- 17. Haskell:すべてのユーザ定義関数の表示/取得リスト
- 18. Pythonはグローバル名が定義されていないと言っています
- 19. 'HTTPCookieProcessor'グローバル名はどのように定義しますか?
- 20. Pythonのテスト時にグローバル名が定義されていません
- 21. pythonのグローバル名「自己」が定義されていない
- 22. スキーム:別の関数でグローバルに定義されたリストを更新する
- 23. リストで未定義を取得する
- 24. Pythonの辞書リストで特定のキーの値をすべて取得する
- 25. C#定義済みのプリプロセッサのリストを取得するには?
- 26. Pythonの3エラー:「NameError:グローバル名 『entryWidget』は定義されていません」
- 27. windows対ubuntu NameError:グローバル名は定義されていません
- 28. Clearcaseで特定のファイルに適用されたすべてのバージョンとラベルのリストを取得するには?
- 29. C++グローバル名前空間のメンバーは既にエラーを定義しています
- 30. javascriptですべてのタイムゾーンのリストを取得するには
ありがとうございます!ユーザー定義の方が便利です – psihodelia
@psihodelia右は、答えを編集しました。必要に応じて、辞書をフィルタリングするためのコードを追加することができます。 –
ありがとう、私はそれについて新しい質問を投稿しました – psihodelia