1

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)
4

2 に答える 2

6

Pythonのスコープルールのため。

def tst()では、ローカル変数A、B、およびCを作成し、それらに新しい値を割り当てます。

グローバルA、B、およびC値に割り当てる場合は、globalキーワードを使用します。

于 2012-05-23T04:51:00.967 に答える
1

tstメソッド内の変数はローカルです。つまり、そのメソッドのスコープ内にのみ存在するさまざまな値を参照します。内部のキーワードglobal(のように)を使用して、動作を修正します。こちらの例とこちらの質問をご覧くださいglobal A,B,C,Dtst

于 2012-05-23T04:50:41.203 に答える