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__しかし、名前ではなく「こんにちは例」として関数名が必要です

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 に答える