以下程序用inspect包编写get_var_name函数获取变量名,然后对字典列表进行了遍历输出,在打印每个信息的开头都输出了变量名作为提示。
import inspect
def get_var_name(var):
for fi in reversed(inspect.stack()):
names = [var_name for var_name, var_val in fi.frame.f_locals.items() if var_val is var]
if len(names)>0:
return names[0]
didi = {
"variety":"poodle",
"master":"sundi",
"age":3
}
banban = {
"variety":"bulldog",
"master":"wenjun",
"age":5
}
bibi = {
"variety":"ruraldog",
"master":"wangchenou",
"age":2
}
pets = [didi,banban,bibi]
for pet in pets:
print("The info of "+get_var_name(pet))
for key,value in pet.items():
message = key.title()+":"+str(value).title()
print(message)
print("*******************")
运行以上代码的结果如下:
The info of didi
Variety:Poodle
Master:Sundi
Age:3
*******************
The info of banban
Variety:Bulldog
Master:Wenjun
Age:5
*******************
The info of bibi
Variety:Ruraldog
Master:Wangchenou
Age:2
*******************
[Finished in 0.7s]