[解決済み] 好きな言語を選んでください] のプログラム中のすべての変数を列挙してください [終了]。
2023-07-14 05:34:33
質問
先週、友人がデバッグの目的で、プログラム/関数/その他内のすべての変数を列挙または一覧表示する方法を尋ねました(本質的に、すべてのスナップショットを取得して、どの変数に設定されているか、またはそれらがまったく設定されていないかを確認することができます)。私は少し見て回り、Pythonのための比較的良い方法を見つけました。
#!/usr/bin/python foo1 = "ハローワールド" foo2 = "バー" foo3 = {"1":"a", "2":"b"}です。 foo4 = "1+1" for name in dir(): myvalue = eval(name) print name, "is", type(name), "and is equal to ", myvalue
というような出力になります。
builtins__ は <type 'str'> で、 <module '__builtin__' (built-in)> と等しいです。 __doc__ は <type 'str'> で、None と等しい。 __file__ は <type 'str'> であり、 ./foo.py と等しい。 __name__ は <type 'str'> で、__main__ と等しい。 foo1 は <type 'str'> であり、Hello world と等しい。 foo2 は <type 'str'> で、bar と等しい。 foo3 は <type 'str'> で、 {'1': 'a', '2': 'b'} と等しい。 foo4 は <type 'str'> で、1+1 に等しい。
私は今のところ、PHPで部分的な方法を見つけました(提供:PHPの リンクテキスト のおかげで)、それはすべての変数とその型をリストするだけで、中身はリストされません。
<?php // いくつかの変数を作成します $bar = 'foo'; $foo ='bar'; // 新しい配列オブジェクトを作成します $arrayObj = new ArrayObject(get_defined_vars()); // 配列オブジェクトをループし、変数と値をエコーします for($iterator = $arrayObj->getIterator(); $iterator->valid(); $iterator->next()); // 配列オブジェクトをループし、変数と値を echo します。 { echo $iterator->key() . ' => ' . $iterator->current() . '<br />』となります。 } ?>
あなたの好きな言語で、すべての変数とその内容をリストアップするにはどうしたらいいでしょうか?
編集者
VonC
: この質問は、ちょっとした"の精神に則って提案します。
コード・チャレンジ
"です。
もし同意できない場合は、編集してタグとリンクを削除してください。
どのように解決するのですか?
Pythonでは、ローカルバインディングをすべて含む辞書を返すlocalsを使用することで、evalを回避することができます。
>>> foo1 = "Hello world"
>>> foo2 = "bar"
>>> foo3 = {"1":"a",
... "2":"b"}
>>> foo4 = "1+1"
>>> import pprint
>>> pprint.pprint(locals())
{'__builtins__': <module '__builtin__' (built-in)>,
'__doc__': None,
'__name__': '__main__',
'foo1': 'Hello world',
'foo2': 'bar',
'foo3': {'1': 'a', '2': 'b'},
'foo4': '1+1',
'pprint': <module 'pprint' from '/usr/lib/python2.5/pprint.pyc'>}
関連
-
[解決済み] すべてのグローバル変数/ローカル変数を印刷しますか?
-
[解決済み] エラー時にRスクリプトの行番号を取得するには?
-
[解決済み] gdb: 現在の行を表示したり、現在の行番号を見つけるには?
-
[解決済み] Angular JavaScriptコードのデバッグ方法
-
[解決済み] Rustのcfgを使用してリリース/デバッグビルドを確認するには?
-
[解決済み] Django デバッグでページの全変数を表示する
-
[解決済み] デバッグ中にDataTableを表示する方法
-
[解決済み] scala のコードを任意の場所に配置した状態でインタプリタにドロップする。
-
[解決済み] GDBで前の行に移動するには?
-
[解決済み] golangの対話型デバッガは存在するのか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] デバッガとは何ですか、またデバッガはどのように問題の診断に役立ちますか?
-
[解決済み] エラー時にRスクリプトの行番号を取得するには?
-
[解決済み] gdb: 現在の行を表示したり、現在の行番号を見つけるには?
-
[解決済み] GDBで関数の戻り値を調べるには?
-
[解決済み] Rustのcfgを使用してリリース/デバッグビルドを確認するには?
-
[解決済み] デバッグシンボル付きでコンパイルされたかどうかを確認する方法は?重複
-
[解決済み] デバッグ中にDataTableを表示する方法
-
[解決済み] scala のコードを任意の場所に配置した状態でインタプリタにドロップする。
-
[解決済み] GDBで前の行に移動するには?
-
[解決済み] golangの対話型デバッガは存在するのか?[クローズド]