2016-10-01 8 views
2

私はPythonを初めて使用しています。ローカルのものと同じ名前のグローバル変数をどのように参照することができますか?Pythonのローカル変数と同じ名前のグローバル変数を参照してください

spam = 'global spam' 
def scope_test(): 
    spam = 'local spam' 
    print(spam) 
    # access global spam and print or assign to the local spam 
    # print(global.spam) 
    # local.spam = global.spam (something like this) 

scope_test() 
+0

あなたがすることはできませんそれは意味をなさない。グローバルな状態と名前のシャドーイングの両方を避けるべきです。 – jonrsharpe

+5

あなたは 'print(globals()[" spam "])'できますができません。 –

+0

または 'import sys; –

答えて

2

それはあなたがそれを行う/聞いて興味があれば、私は酒のためにそれに答えています、何かお勧めはありません。

Python 3.5.2 
>>> spam = 'global spam' 
>>> def scope_test(): 
..  spam = 'local spam' 
..  print(spam) 
..  # access global spam and print or assign to the local spam 
..  print(globals()['spam']) 
..  spam = globals()['spam'] 
..  print(spam) 
..  
>>> scope_test() 

出力:

local spam 
global spam 
global spam 
関連する問題