2012-04-20 9 views
2

地方()は辞書です。私は、単純なPython:地方のキーのタイプを調べる()

for i in locals().keys(): 
    type(i) 

何返されることは、彼らはすべての文字列だということを(はい、実際の時点で、彼らは)された操作を行うが、これらのキーは、さまざまなタイプを示している場合 - 1は、モジュールを言うかもしれません。いくつかの参照型(オブジェクト)だけでなく、プリミティブ型(int、stringなど)もあります。

ある意味では、文字列から名前を抽出したいと思います。文字列の属性を使ってこれを行う方法を見ましたが、行っていません。私はイントロスペクションから何かが必要だと信じていますが、何ですか?

答えて

2

locals().keys()は、ローカルスペースにバインドされたすべての変数名を返します。名前なので、すべて文字列です。 (Python 2.xでは、これにもlocals().iterkeys()を使用してイテレータを得ることができます)。

代わりにlocals().values()を試してください。 Python 2.xでは、locals().itervalues()を使用してイテレータを取得できます。

locals().items()key, valueのペアを取得する。 Python 2.xでは、locals().iteritems()を使用してイテレータを取得できます。

+1

名前と値の両方を取得する 'locals()。items()'(名前と型で印刷したい場合に便利です)。 – kindall

+0

thanks - locals()。values()がトリックをしたので、私はその過程で新しいものか2つを学びました。 – patfla

+0

こんにちは。 Pycharmは、「コードの可読性の検査」は地元の人たちが心配していることを伝えています。iteritems()。修正のための任意のアイデア? – user2678074

関連する問題