首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法从函数内部重命名python函数?

有没有办法从函数内部重命名python函数?
EN

Stack Overflow用户
提问于 2018-08-19 00:38:10
回答 1查看 382关注 0票数 0

我想通过将其名称作为字符串传递给其自身来重命名python函数。

例如。

代码语言:javascript
复制
def ihavenoname(new_name="cheese"):
    something.this_function.name= new_name

    # https://stackoverflow.com/questions/251464/how-to-get-a-function-name-as-a-string-in-python
    import traceback
    stack = traceback.extract_stack()
    filename, codeline, funcName, text = stack[-2]
    return funcName
>>>"cheese"==ihavenoname() # True

这个是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-19 00:51:32

您可以通过更改__name__来重命名函数。您可以简单地创建一个装饰器,并使用它来重命名函数名称-

代码语言:javascript
复制
def rename(newname):
    def decorator(fn):
        fn.__name__ = newname
        return fn
    return decorator

@rename('new name')
def f():
    pass

但需要注意的是,您的函数只能通过原始名称访问

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51910668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档