2017-12-18 225 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。

相关问题