我想通过将其名称作为字符串传递给其自身来重命名python函数。
例如。
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
这个是可能的吗?
发布于 2018-08-19 00:51:32
您可以通过更改__name__
来重命名函数。您可以简单地创建一个装饰器,并使用它来重命名函数名称-
def rename(newname):
def decorator(fn):
fn.__name__ = newname
return fn
return decorator
@rename('new name')
def f():
pass
但需要注意的是,您的函数只能通过原始名称访问
https://stackoverflow.com/questions/51910668
复制相似问题