名称错误:未定义名称“\u name”

2024-05-12 12:36:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我在stackoverflow中也遇到过类似的问题,但找不到接近我问题的答案。在最后一行给出错误之前的3行下面的代码中-

NameError: name '_name_' is not defined

我从大学实验室指南中抄了下面的代码。不太确定,代码是如何工作的。我们只是被告知为这个实验室复制和粘贴并查看结果。但是,我们必须在命令行中输入所有的代码,我被卡住了。如何修复代码中的此错误?

#!/usr/bin/python
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.util import dumpNodeConnections
from mininet.log import setLogLevel
class SingleSwitchTopo(Topo):
    “Single switch connected to n hosts.”
def_init_(self,n=2,**opts):
#initialize topology and default options
      Topo._init_(self,**opts)
      switch=self.addSwitch(‘s1’)
#Python’s range(N) generates 0..N-1
      for h in range(n):
           host=self.addHost(‘h%s’%(h+1))
           self.addLink(host,switch)
def simpleTest():
     “Create and test a simple network”
      topo=SingleSwitchTopo(n=4)
      net=Mininet(topo)
      net.start
      print “Dumping host connections”
      dumpNodeConnections(net.hosts)
      print “Testing network connectivity”
      net.pingAll()
     net.stop()
if _name_==’_main_’:
     #Tell mininet to print useful information
     setLogLevel(‘info’)
     simpleTest()

Tags: 代码namefromimportselfhostnet错误
3条回答

您需要两个下划线而不是一个:

if __name__ == "__main__"

Python直接执行。如果省略,它将从第0级缩进执行所有代码。

问题在于-

if _name_==’_main_’:

我的猜测是,这一行代码只在作为脚本运行时运行,而不是在导入时运行,如果是这样,则需要在namemain两侧使用双下划线。看起来引号是错误的,您需要使用'。示例-

if __name__=='__main__':

if _name_==’_main_’:

您没有使用双下划线编写代码,应该如下所示

if __name__==’__main__’:

谢谢你的上述回答,他们为我指出了错误,但还不清楚。我已经通过回答自己的问题来说明这一点。

相关问题 更多 >