80

関数があるとしましょう

def x():
    print(20)

ここで、関数を という変数に割り当てて、yを使用するyと関数xが再度呼び出されるようにします。単純に割り当てy = x()を行うと、 が返されますNone

4

6 に答える 6

127

関数を呼び出さないだけです。

>>>def x():
>>>    print(20)
>>>y = x
>>>y()
20

角かっこは、関数を呼び出していることを python に伝えるため、そこに配置すると、関数が呼び出され、返さyた値(この場合は) が割り当てられます。xNone

于 2012-04-27T16:13:16.880 に答える
15

関数を変数に代入するときは、() を使用せず、単に関数の名前を使用します。

あなたの場合、与えられdef x(): ...た変数silly_varでは、次のようにします:

silly_var = x

そして、次のいずれかで関数を呼び出すことができます

x()

また

silly_var()
于 2012-04-27T16:14:29.360 に答える
11

実行y=x()すると、実際には関数オブジェクトを呼び出した結果に y が代入され、x関数の戻り値は になりNoneます。Python での関数呼び出しは、 を使用して実行され()ます。関数オブジェクト x を y のように割り当てて、関数を呼び出すのと同じようにx to y呼び出すことができるように割り当てるにはyxy=xy()

于 2012-04-27T16:39:52.140 に答える
8

構文

def x():
    print(20)

基本的には同じですx = lambda: print(20)(ボンネットの下でいくつかの違いがありますが、ほとんどの実用的な目的では、結果は同じです)。

構文

def y(t):
   return t**2

と基本的に同じy= lambda t: t**2です。関数を定義すると、その関数を値として持つ変数が作成されます。最初の例ではx、 function になるように設定していますlambda: print(20)。だからx今その機能を指します。 x()関数ではなく、関数の呼び出しです。Python では、関数は単に変数の一種であり、通常は他の変数と同じように使用できます。例えば:

def power_function(power):
      return  lambda x : x**power
power_function(3)(2)

これは 8 を返します。power_functionは、関数を出力として返す関数です。で呼び出されると3、入力を 3 乗する関数が返されるため、その関数が input2で呼び出されると 8 が返されcube = power_function(3)ますcube(2)

于 2018-11-16T17:52:39.553 に答える
0

関数の名前を変更して新しい名前で呼び出すことの価値/有用性が何であるかわかりません。しかし、たとえばコマンドラインから取得した文字列を関数名として使用すると、いくつかの価値/有用性があります。

import sys
fun = eval(sys.argv[1])
fun()

この場合、fun = x です。

于 2020-12-16T09:16:16.090 に答える