我想使用这个字典打印函数名称 -
class Foo(models.Model):
var1 = models.CharField(max_length=30)
var2 = models.CharField(max_length=30)
def method1(self, input1):
-- do something based on input1, var1, var2 --
return result
我试过这个(从答案中获取)
objects = Foo.objects.filter(var1 = a)
for obj in objects:
json = {'var1': obj.var1, 'var2': obj.var2, 'method': obj.method1() }
正在调用该函数(循环的第二行) 但是这段代码给出了输出 -
def pressKey() :
print "is pressed"
def userLogin() :
print "Code to login to <Server Name> with <username>"
act={'Login':userLogin,'press':pressKey}
我希望输出为 -
for key, value in act.iteritems() :
print value,'()\t',
act[key]()
请帮助我怎样才能得到它!。提前感谢你。
答案 0 :(得分:1)
如果你知道它们都是函数,你可以使用__name__
属性来获取函数的名称:
for key, value in act.iteritems():
print value.__name__, '()\t',
act[key]()
请注意,您实际上不需要key
,因为您可以使用value()
代替act[key]()
,这也会稍微提高效率:
for value in act.itervalues() :
print value.__name__, '()\t',
value()
答案 1 :(得分:1)
试试这个:
def pressKey() :
print "is pressed"
def userLogin() :
print "Code to login to <Server Name> with <username>"
act={'Login':userLogin,'press':pressKey}
for key, value in act.iteritems() :
print value.__name__,'()\t',
act[key]()