私はpythonを学んでおり、コードのさまざまなプロセスをさまざまな機能に分離したいと考えています。そのためには、前の関数の変数をパラメーターとして他の関数に渡す必要があります。私はこのようなことを試しました
def F1 (A):
B=A+1
def F2 (B):
C=B+1
print C
F1(1) F2()
たとえば、この場合、最終結果として 3 を取得することを期待しています。
しかし、うまくいきません。
ちょうどreturn
それ:
def F1 (A):
return A+1
def F2 (B):
C=B+1
print C
# Then use it as parameter
F2(F1(1))
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
れますB
がB
、コード内のどこにも作成されていません。割り当てB=C
はほとんど意味がありません。
結果を保存するために共有オブジェクトが必要な場合がありますか? のようなもの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