-1

プログラムのロジックの実行を開始する前に、すべてのシンボルがインタープリターによってレビューされていないことに少し混乱しています。

たとえば、このリストでは次のようになります。

def func_twice(f, x):
     f(f(x))

def square(x):
   return x * x

result = func_twice(square,2)

結果は、実行時に評価されるまでグローバル フレームには表示されません。

そしてこれで:

def f(x, y):
   return g(x)

def g(a):
   return a + y

f(1, 2)

yは、評価されるまで構文チェックされませんでした。

インタープリター言語の性質によるものであり、これがその通りであると言う場合、プログラマーによって導入された多くのそのような種類のエラーがあり、テストするまで回復できない可能性があるPythonでエンタープライズアプリを作成するにはどうすればよいですか?

4

2 に答える 2

0

これは、Pythonに変数宣言がないためです。yこのコードでは、関数を宣言するときに存在するかどうかはわかりませんg

def f(x, y):
   return g(x)

def g(a):
   return a + y

y = 3
f(1, 2)

gそれまではわからないので、呼び出し時にのみチェックされます。

于 2013-02-24T15:54:31.683 に答える
0

func_twicef(f(x));の値を返していません。None明示的なreturnステートメントがない場合に返されます。あなたが欲しい

def func_twice(f, x):
    return f(f(x))
于 2013-02-24T15:54:47.107 に答える