Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
tstが呼び出されたときに、以下の変数(A、B、C、D)が変更されないのはなぜですか。
A,B,C = 0,0,0 D = 0 def tst(): A,B,C = 1,2,3 D = 4 print(A,B,C,D) tst() # tst is called print(A,B,C,D) Output: (1, 2, 3, 4) (0, 0, 0, 0)
Pythonのスコープルールのため。
def tst()では、ローカル変数A、B、およびCを作成し、それらに新しい値を割り当てます。
グローバルA、B、およびC値に割り当てる場合は、globalキーワードを使用します。
tstメソッド内の変数はローカルです。つまり、そのメソッドのスコープ内にのみ存在するさまざまな値を参照します。内部のキーワードglobal(のように)を使用して、動作を修正します。こちらの例とこちらの質問をご覧ください。global A,B,C,Dtst
tst
global
global A,B,C,D