2011-07-11 2 views
1
x=4  
def func():   

     print("HELLO WORLD")   
     y=x+2  
     x=2  
     print (y)   
     print (x) # OUTPUT IS 6,2,2 
     global x # global declaration is done here 
func() 
print (x) # outputs as 2 but why???? why not 4???? 

。実際、私はグローバル宣言が、なぜそのはFUNC後2としてxの値を印刷した後、xの値を変更didntのグローバルdeclaration.But前に印刷(X)を作っ()。これは、文の順次実行はありませんか?または、関数内のコード全体を読み込んだ後に、関数ラインの実行を開始しますか?上記のプログラムをクリアしてください。は、なぜそれが別の出力を示していますか?それは6,2,2のように出力を示し、なぜ

+0

クール適切 –

答えて

9

globalキーワードは、変数がグローバルと見なされることをコンパイラに示します全体で関数です。コンパイラがそれに気づいている限り、関数内でどこに現れても問題ありません。

+0

をあなたのコードをフォーマットしてください、私はCやC++などの他の言語からcompletey異なるPythonのthen.Itsでより多くの概念を学ぶ必要があります。Pythonはintrestingのようです。 – niko

+0

あなたの答えを受け入れるより6分笑 – niko

関連する問題