python変数の変数名の取得方法
1395 ワード
1変数のaという値の変数が存在すると仮定します.この変数の変数名aを1つの関数で取得するにはどうすればいいですか?
上のこの需要はあるグループの友达の1つの要求に由来して、このような関数が印刷を便利にすることを望んでいます.
この需要は薄っぺらですね.どうしてフォーマットして出力しないのですか.それは“怠け者”に回復して、いいでしょう、怠け者は確かにプログラマーの技術の進歩の第1の推進力です.
変数名からの変数値の取得
最初のアイデアは、変数から変数名を取得するのは面倒なことです.お兄さん、変数名を使ってください.
乱暴で簡単なeval、あなたの困難を完璧に解決します.
心の小劇場:安全かどうかは私に何の関係もない.
localsの使用
間違いなく、このような方法は群の中のお兄さんに拒絶されて、もっと引用符を2つ打って、お兄さん、あなたも怠け者でしょう.
pythonは動的言語として反射という機能があるに違いないが,変数から変数名を取得するのは面倒である.
もちろん上記のコードにはいくつかの小さなバグがあります.例えば、次のコードですが、上品ではありません.
小さな得意を持って、もう一人の友达がこんな答えを出した.
雰囲気が一瞬固まった
変数名から変数値を取得する方法
他人から提供された知乎回答に由来する
元の回答は参考になりますが、inspect+reで取得する方法も提供されています.
転載先:https://www.cnblogs.com/lynsyklate/p/8069283.html
上のこの需要はあるグループの友达の1つの要求に由来して、このような関数が印刷を便利にすることを望んでいます.
この需要は薄っぺらですね.どうしてフォーマットして出力しないのですか.それは“怠け者”に回復して、いいでしょう、怠け者は確かにプログラマーの技術の進歩の第1の推進力です.
変数名からの変数値の取得
最初のアイデアは、変数から変数名を取得するのは面倒なことです.お兄さん、変数名を使ってください.
def print_var(x:str)->None:
print(s,"=",eval(s))
乱暴で簡単なeval、あなたの困難を完璧に解決します.
心の小劇場:安全かどうかは私に何の関係もない.
localsの使用
間違いなく、このような方法は群の中のお兄さんに拒絶されて、もっと引用符を2つ打って、お兄さん、あなたも怠け者でしょう.
pythonは動的言語として反射という機能があるに違いないが,変数から変数名を取得するのは面倒である.
def get_variable_name(x)->str:
for k,v in locals().items():
if v is x:
return k
def print_var(x)->None:
print(get_variable_name(x),'=',x)
もちろん上記のコードにはいくつかの小さなバグがあります.例えば、次のコードですが、上品ではありません.
a = 1
b = 1
print_var(a)
print_var(b)
小さな得意を持って、もう一人の友达がこんな答えを出した.
雰囲気が一瞬固まった
変数名から変数値を取得する方法
他人から提供された知乎回答に由来する
import sys
def append(list_, name):
list_.append((name, sys._getframe().f_back.f_locals[name]))
>>> mylist = []
>>> myvar = 12
>>> append(mylist, 'myvar')
>>> mylist
[('myvar', 12)]
元の回答は参考になりますが、inspect+reで取得する方法も提供されています.
転載先:https://www.cnblogs.com/lynsyklate/p/8069283.html