できません。 *詳細な理由はPython language referenceで議論されていますが、基本的にはprintL(A_minus_B)
を呼び出すときにPythonが行うのはA_minus_B
とラベル付けされた値をとり、新しいラベルxlist
を作成して同じことを言います。その時点から、ラベルxlist
は、他のラベルA_minus_B
と実際には、A_minus_B
またはxlist
とラベル付けされた値、またはラベル付けに使用された名前に何も接続していない値とは全く関係ありません。
*さて、あなたはは、いくつかの深い「Pythonのブードゥー教」を使用して...あなたは基本的にあなたがprintL(A_minus_B)
を呼び出すソースコードの一部を読んで、変数を抽出するためのPythonを伝えなければならないであろうことができますそこから名前。通常、これはあなたがやってはいけないことです(初心者ではなく、通常は間違った方法でプログラムを設計したことを示しているからです)。しかし、デバッグはおそらく適切な場合の1つです。
import inspect, pprint
def print_values(*names):
caller = inspect.stack()[1][0]
for name in names:
if name in caller.f_locals:
value = caller.f_locals[name]
elif name in caller.f_globals:
value = caller.f_globals[name]
else:
print 'no such variable: ' + name
# do whatever you want with name and value, for example:
print "****************************"
print name
print (" entries : "),len(value)
print value
print "****************************"
キャッチは、あなたがこの関数を呼び出すとき、あなたはそれを名前を印刷したい変数ではなく、変数自体のに合格しなければならないということである。ここではそれを行うための一つの方法です。だからprint_values('A_minus_B')
で、print_values(A_minus_B)
には電話しないでください。たとえば、print_values('A_minus_B', 'C_minus_D', 'foo')
のように、複数の名前をすべて印刷して出力することができます。それを行うには
あなたが使用しているどのような言語を教えている場合には役立ちます。 –
申し訳ありません。これはPython 2.7用です –
複製:http://stackoverflow.com/questions/592746/how-can-you-print-a-variable-name-in-python – heltonbiker