6

我想根据从另一个函数获得的结果更改函数名称但函数定义保持不变我该怎么做我尝试了以下示例但它不起作用

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”而不是名称

4

1 回答 1

6

您可以简单地分配给__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"

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

于 2012-09-14T05:59:13.653 回答