私は現在、Pythonシェルでの計算を行っています。私が望むのは、ポイントまで定義されたすべての変数を見ることができるMatlabスタイルのリストアウトです(私が使用した名前、その値などを知っています)。定義済みのすべての変数を表示
方法はありますか?どのようにすればいいですか?値を取得するには
for name in vars().keys():
print(name)
:名前を取得するには
私は現在、Pythonシェルでの計算を行っています。私が望むのは、ポイントまで定義されたすべての変数を見ることができるMatlabスタイルのリストアウトです(私が使用した名前、その値などを知っています)。定義済みのすべての変数を表示
方法はありますか?どのようにすればいいですか?値を取得するには
for name in vars().keys():
print(name)
:名前を取得するには
for value in vars().values():
print(value)
VARSは()もオブジェクト自体の中で定義されているVARSを見つけるために、オプションの引数を取ります。
印刷地方()
編集から続きました。
印刷するとき、それは少しきれいに見えるように:
import sys, pprint
sys.displayhook = pprint.pprint
locals()
あなたに多くの垂直プリントアウトを与える必要があります。
物事のカップルは、あなたが使用することができます:
globals()
はあなたにlocals()
はあなたの辞書を与えるグローバル変数の辞書を与える:
dir()
はあなたにスコープ変数内のリストが表示されますローカル変数globals()、locals()、vars()、およびdir()がすべてあなたの望みに役立ちます。
dir()は、すべての現在のインポート、および変数を返します。などvarScore、varNames、など
あなたは自分の変数をしたい場合、私はDIRから抽出しやすい命名規則を示唆しているが、
そのように、あなたは、単にこれを行うことができます。
for vars in dir():
if vars.startswith("var"):
print vars
編集
あなたはすべての変数を一覧表示したいのですが、のようなインポートモジュールと変数除外する場合:
__builtins__
あなたはそうのようなものを使用することができます:あなたが見ることができるように、変数(まあ、タプル)ですので
import os
import re
x = 11
imports = "os","re"
for vars in dir():
if vars.startswith("__") == 0 and vars not in imports:
print vars
することは、それは、しかし、変数「輸入」と表示されます。簡単な回避策は、 "imports"という単語をインポートタプル自体に追加することです。これはあなたのためのオプションがある場合は
は、あなたがIPythonで見たいと思うかもしれません:現在定義されているすべての変数のリストを取得するには
、タイプwho
:
In [1]: foo = 'bar'
In [2]: who
foo
は、あなたがより多くのためにwhos
を入力することができます詳細:
In [3]: whos
Variable Type Data/Info
----------------------------
foo str bar
可能な他の機能の富があります - 基本的には、STのPythonインタプリタでありますeroids。一つの便利な1あなたは、セッションの間で変数を保存することができますstore
コマンドです(一種のように超簡単pickle
)あなたは数分を持っている場合は、私がチームに関連付けられない方法で午前Jeff Rush's excellent IPython demonstration screencasts:
をチェックアウト
IPythonの背後には満足しているユーザーしかいません。
+1、しかし投票したいと思っています+10:地元の人以外の変数を削除するIPythonの%()! – EOL
この答えは、誰かがIPythonをうまく知らない場合、コマンドが動作するためにオートマチックをオンにする必要があることを知らないので、半分役立ちます。デフォルトでは、マジックコマンドの前に%で始まる必要があります。 '%who' –
def MyWho():
print [v for v in globals().keys() if not v.startswith('_')]
これは対話型シェルで定義する必要があります。
インポートOS、A = 10、インポートSYS、MyWho()は、次に
[ 'A'、 'MyWho'、 'SYS'、 'OS']
もう少しスマート(パイソンを与えます3)方法:私はPython 2.7インタプリタで
def printvars():
tmp = globals().copy()
[print(k,' : ',v,' type:' , type(v)) for k,v in tmp.items() if not k.startswith('_') and k!='tmp' and k!='In' and k!='Out' and not hasattr(v, '__call__')]
、MATLABに存在する同じwhos
コマンドは、Pythonで存在します。これは、MATLABアナログ(変数名、タイプ、および値/データ)と同じ詳細を示します。
Pythonインタプリタでは、whos
は、 "対話的な名前空間"のすべての変数をリストします。
RedBlueThingアナログは前記のとおり
dir()
は、スコープ変数にglobals()
のリストを与えるグローバル変数の辞書を与えるlocals()
ローカル変数の辞書を与えます対話型シェル(バージョン2.6.9)を使用して、変数a = 1
およびを作成した後dir()
はlocals()
を実行している
['__builtins__', '__doc__', '__name__', '__package__', 'a', 'b']
を与えて実行するとglobals()
を実行
{'a': 1, 'b': 2, '__builtins__': <module '__builtin__' (built-in)>, '__package__': None, '__name__': '__main__', '__doc__': None}
を与えるは、このケースでlocals()
と全く同じ答えを与えます。
私はモジュールに入っていないので、すべての変数はローカル変数とグローバル変数の両方として利用できます。locals()
およびglobals()
には、変数と名前の値がリストされます。 dir()
には名前のみが表示されます。
モジュールをインポートして、モジュール内にlocals()
またはglobals()
を実行した場合、dir()
はまだ少数の変数しか提供しません。上記の変数に__file__
を追加します。 locals()
とglobals()
も同じ変数をリストしていますが、__builtin__
の辞書値を出力する際には、組み込み関数、例外、およびタイプが「'type': <type 'type'>
」ではなく、上記の簡略<module '__builtin__' (built-in)>
。
dir()
については、ニューメキシコ州テックのPython 2.7 quick referenceまたはibiblio.orgのthe dir() functionを参照してください。およそlocals()
とglobals()
ニューメキシコ工科大学のglobalsについて飛び込むPythonとページでlocals and globalsを参照してください
。
[コメント:@Kurt:あなたはenumerate-or-list-all-variables-in-a-program-of-your-favorite-language-hereへのリンクを付けましたが、その答えに間違いがあります。その例の問題はtype(name)
で、常に<type 'str'>
を返します。変数のリストが表示されますが、質問の答えは間違った型が表示されます。これはあなたの例では明らかではありませんでした。なぜなら、すべての変数がストリングであったからです。しかし、それが返すのは、変数の型ではなく、変数の型の型です。これを修正するにはprint type(name)
の代わりにprint eval('type(' + name + ')')
を使用します。私は回答セクションにコメントを投稿することをお詫びしますが、私はコメント投稿権がありません。もう1つの質問は閉じます]
私は分類社会のルールによっていくつかの構造を寸法設定しています。だから、厚さはすべてt、長さLなどです。そして、時には彼らはお互いを呼び出すので、第7章2.4.4で使用されています。 3.2.2のtを使用します。一回限りの計算なので、私はpyを対話的なシェルとして使うだけです。 – Rook
完了しました:http://stackoverflow.com/questions/430811/enumerate-or-list-all-variables-in-a-program-of-your-favorite-language-here – Kurt