在这个程序中,我使用一个用户输入来选择用户对齐某些文本的对齐方式,目前我只是在这样的语句中使用...
if alignment == "Left":
line = left(new_string)
elif alignment == "Right":
line = right(new_string)
elif alignment == "Centre":
line = centre(new_string)
elif alignment == "Fully":
line = fully(new_string)
else:
print "Error."
但是,有没有一种方法可以摆脱这些语句,只需使用用户输入来调用左,右,中,完全函数。
由于 JT
答案 0 :(得分:4)
将alignment
字符串映射到带字典的函数:
alignments = {'Left': left, 'Right': right, 'Centre', centre, 'Fully': fully}
try:
line = alignments[alignment](new_string)
except KeyError:
print "Error."
Python函数是第一类对象,因此您只需将它们作为值存储在字典中即可。
答案 1 :(得分:0)
func = globals().get(alignment.lower())
if not func:
func = locals().get(alignment.lower())
func(new_string)
在调用时,您应确保 func 不是无。
答案 2 :(得分:0)
评估
try:
eval(alignment.lower())(new_string)
except NameError:
print 'Error'