gpt4 book ai didi

python - 可以在定义中更改函数名称吗?

转载 作者:太空狗 更新时间:2023-10-29 21:15:10 25 4
gpt4 key购买 nike

我尝试了几种方法来更改定义中的函数名称,但都失败了。

>>> def f():
pass
>>> f.__name__
'f'
>>> def f():
f.__name__ = 'new name'
>>> f.__name__
'f'
>>> def f():
self.__name__ = 'new name'
>>> f.__name__
'f'

但我可以在定义后更改名称属性。

>>> def f():
pass
>>> f.__name__ = 'new name'
>>> f.__name__
'new name'

有什么方法可以在定义中更改/设置它(除了使用装饰器)?

最佳答案

在您执行函数之前,函数体不会被执行。不过,您可以使用装饰器:

def rename(newname):
def decorator(f):
f.__name__ = newname
return f
return decorator

然后像这样使用它:

@rename('new name')
def f():
pass
print f.__name__

但是,该函数仍然只能作为 f 访问。

关于python - 可以在定义中更改函数名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10874432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com