为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地8271018 2021-03-22 17:14:44
这个想法是,当编写一个新函数时,它的变量名会自动添加到列表中。请注意,我意识到我可以只使用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请求的函数。


查看完整回答
反对 回复 2021-03-23
  • 2 回答
  • 0 关注
  • 250 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号