0

私はpythonを学んでおり、コードのさまざまなプロセスをさまざまな機能に分離したいと考えています。そのためには、前の関数の変数をパラメーターとして他の関数に渡す必要があります。私はこのようなことを試しました

def F1 (A):
   B=A+1 

def F2 (B):
   C=B+1
   print C  

F1(1) F2()

たとえば、この場合、最終結果として 3 を取得することを期待しています。

しかし、うまくいきません。

4

3 に答える 3

3

ちょうどreturnそれ:

def F1 (A):
   return A+1

def F2 (B):
   C=B+1
   print C

# Then use it as parameter
F2(F1(1))
于 2011-05-14T00:19:14.500 に答える
2

global編集:投稿を編集したので:関数内で作成された変数はその関数に対してローカルです。つまり、コマンドを使用しない限り、他の場所でそれらを参照することはできませんglobal myvar。ただし、これはお勧めしません。コードが次のようになっているとよいでしょう。

def F1 (A):
  return A+1

def F2 (B):
 return B+1

first = F1(1)
second = F2(first)

print first, second

def F2 (B):'パラメータとして使用する'を意味することを忘れないでくださいB-値を使用して関数を呼び出すまで、パラメータは未定義です。

---元の答え---

ここで何をしようとしているのか正確にはわかりませんが、関数について説明してみましょう。

def F1(A):
  ...

これにより、と呼ばれるF1単一のパラメーターを受け入れると呼ばれる関数が作成されAます。渡される引数はすべて、F1に設定されるためA、次のようになります。

def F1(A):
  print A

F1('hello world')

このコードF1では、引数を使用して呼び出されます'hello world'。この引数はに設定されA、関数が実行されます。print Aこれは現在、と同等print 'hello world'です。

したがって、関数ではすぐにに再割り当てさAれますBB、コード内のどこにも作成されていません。割り当てB=Cはほとんど意味がありません。

于 2011-05-14T00:07:03.133 に答える
1

結果を保存するために共有オブジェクトが必要な場合がありますか? のようなものdict

def f1(data):
    data['b'] = data['a'] + 1

def f2(data):
    data['c'] = data['b'] + 1
    print data['c']

my_data = {'a': 1}

f1(my_data)
f2(my_data) # prints 3
于 2011-05-14T00:24:54.467 に答える