共有する変数はそれぞれの関数の外側で定義するべきです。その上で、同じ変数を変更する方法ですが、
- 引数で渡す
- クラスのメンバー変数にする
- グローバル変数として扱う
のどれかになると思います。
1.だと
Python
1def func1():
2 ret.update({"call":"func1"})
3
4def func2(ret):
5 ret.update({"call":"func2"})
6
7ret = dict()
8print(ret)
9# {}
10
11func1(ret)
12print(ret)
13# {'call': 'func1'}
14
15func2(ret)
16print(ret)
17# {'call': 'func2'}
3.だとglobal
キーワードを使って
Python
1def func1():
2 global ret
3 ret.update({"call":"func1"})
4
5def func2():
6 global ret
7 ret.update({"call":"func2"})
8
9ret = dict()
10print(ret)
11# {}
12
13func1()
14print(ret)
15# {'call': 'func1'}
16
17func2()
18print(ret)
19# {'call': 'func2'}
- は割愛します。
他の方の回答を見ての追記。return
で定義した変数を返してやる。
Python
1def func1():
2 ret = dict()
3 ret.update({"call":"func1"})
4 return ret
5
6def func2(ret):
7 ret.update({"call":"func2"})
8
9ret = func1()
10print(ret)
11# {'call': 'func1'}
12
13func2(ret)
14print(ret)
15# {'call': 'func2'}
16
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。