2017-12-18 183 views

回答

0

塊中定義的變量具有塊範圍,這意味着它們從外部不可見。 myname在功能call,並只在call可見。
如果我們按照自己的風格

myname = None 

def call(): 
    global myname  
    myname = Me("Alex") 
    printIt() 

def printIt():  # now we could access myname 
    print(myname.name) 

然而,更好的選擇是使用

def call():  
    myname = Me("Alex") 
    printIt(myname) 

def printIt(somebody):  # now we could access aPerson as well 
    print(somebody.name) 
+0

謝謝大家的意見!我現在明白了。特別是這個完美的考慮我的風格。 –

0

myname是隻能內部功能它的定義,其中使用的局部變量,以避免不必要的全局變量。

嘗試把它作爲參數:

def call(): 
    myname = Me("Alex") 
    printIt(myname) 

def printIt(myname): 
    print(myname.name) 
+0

完美無瑕,謝謝!這確實很有意義。 –

0

MYNAME不是一個全局變量。它不在printIt方法的範圍內。它是本地的呼叫方法。如果你想訪問它,以全局的方式聲明它,或者將myname對象作爲參數傳遞給printIt。

相關問題