这个想法是,当编写一个新函数时,它的变量名会自动添加到列表中。请注意,我意识到我可以只使用mylist.append(whatever),但是我正在寻找一种自动添加而不是手动添加的方法。所以,如果我们从...开始def function1(*args): print "string"def function2(*args): print "string 2"mylist = []...是否有一种方法可以自动将'function1'和'function2'附加到mylist中,以便最终像这样...mylist = [function1, function2]具体来说,我想列出变量名,而不是字符串(例如“ function1”)。我正在学习Python并只是进行实验,所以目前这还没有达到任何特定的目的,我只是想知道是否有可能。
2 回答

湖上湖
TA贡献2003条经验 获得超2个赞
原则上,您可以使用decorator进行此操作,它可能会被视为半自动解决方案:
@gather
def function1():
print "function 1"
@gather
def function2():
print "function 2"
这种装饰器的一种实现实质上是一个函数,该函数将函数作为参数:
function_list = []
def gather(func):
function_list.append(func) # or .append(func.__name__)
return func
在这种简单的化身中,它可能根本没有用,但是流行的库和框架通常采用了该技术的某种增强版本。例如,请参见Flask的@app.route装饰器,以指定处理特定HTTP请求的函数。
添加回答
举报
0/150
提交
取消