如何在python中动态更改函数名称

时间:2012-09-14 05:52:40

标签: python

我想根据从另一个函数获得的结果更改函数名称,但函数定义保持不变我怎么能这样做我尝试了以下示例但它没有工作

def f(text):
   def x(text):
     return text+"example"
   name=x(text)
   def name(y):
     return y
   return name
p=f("hi ")
print p("hello")
print p.__name__

输出

hello
name

但是我希望函数名p.__name__为“hi example”而不是名称

1 个答案:

答案 0 :(得分:3)

您只需指定__name__

即可
def f(text):
   def r(y):
     return y
   r.__name__ = text + "example"
   return r
p = f("hi ")
print (p("hello")) # Outputs "hello"
print (p.__name__) # Outputs "hi example"

请注意,函数名称对函数的行为没有任何影响,除了作为字符串表示的一部分或调试辅助之外没有任何意义。