django python eval

时间:2011-12-20 02:03:17

标签: python django

我有一些代码的代码片段,我想抽象给一个只有一个需要动态的小变化的函数

if myUser.profile.get_setting_c == True :
# below does not work but you get the idea, how 
if myUser.profile.eval('get_setting_c') == True :

2 个答案:

答案 0 :(得分:4)

这是你想要的吗?

getattr(myUser.profile, 'get_setting_c')

BTW,使用eval在python中被认为是不好的做法,请参阅Is using eval in Python a bad practice?

答案 1 :(得分:-1)

为什么不

if eval('myUser.profile.get_setting_c') == True:

def fun(setting):
    return eval('myUser.profile.%s' % setting)

if fun('get_setting_c') == True: