猿问

有没有一种方法可以将函数名称自动添加到列表中?

这个想法是,当编写一个新函数时,它的变量名会自动添加到列表中。


请注意,我意识到我可以只使用mylist.append(whatever),但是我正在寻找一种自动添加而不是手动添加的方法。


所以,如果我们从...开始


def function1(*args):

    print "string"


def function2(*args):

    print "string 2"


mylist = []

...是否有一种方法可以自动将'function1'和'function2'附加到mylist中,以便最终像这样...


mylist = [function1, function2]

具体来说,我想列出变量名,而不是字符串(例如“ function1”)。


我正在学习Python并只是进行实验,所以目前这还没有达到任何特定的目的,我只是想知道是否有可能。


慕的地8271018
浏览 251回答 2
2回答

湖上湖

原则上,您可以使用decorator进行此操作,它可能会被视为半自动解决方案:@gatherdef function1():    print "function 1"@gatherdef function2():    print "function 2"这种装饰器的一种实现实质上是一个函数,该函数将函数作为参数:function_list = []def gather(func):    function_list.append(func)  # or .append(func.__name__)    return func在这种简单的化身中,它可能根本没有用,但是流行的库和框架通常采用了该技术的某种增强版本。例如,请参见Flask的@app.route装饰器,以指定处理特定HTTP请求的函数。
随时随地看视频慕课网APP

相关分类

Python
我要回答