• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

NameError:

class Me(): def __init__(self,name): self.name=name def call(): myname=Me("Alex") printIt() def printIt(): print(myname.name) call() 

为什么我收到的不是打印这个错误“亚历克斯:名称“MYNAME”是不是在Python

python 来源:Alex G. Borrego 4次浏览

我得到这个错误常常让我想举一个例子定义“?在此先感谢NameError:</p> <pre><code>class Me(): def __init__(self,name): self.name=name def call(): myname=Me(“Alex”) printIt() def printIt(): print(myname.name) call() </code></pre> <p>为什么我收到的不是打印这个错误“亚历克斯:名称“MYNAME”是不是在Python

===========解决方案如下:

块中定义的变量具有块范围,这意味着它们从外部不可见。 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)