NameError: name '_name_' is not defined

NameError: name '_name_' is not defined

我已经在 Whosebug 中解决了类似的问题,但找不到接近我的问题的答案。在最后一行之前的第 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()

问题在行-

if _name_==’_main_’:

我猜你有那一行,这样代码只有 运行s 当 运行 作为脚本时,而不是在导入时,如果是这样,你需要在 [ 的两边加双下划线=12=] 以及 main。看起来引号是错误的,您需要使用 ' 。示例 -

if __name__=='__main__':

if _name_==’_main_’:

你没有用双下划线写代码,应该是下面这样

if __name__==’__main__’:

感谢您的上述回答,他们为我指出了错误,但尚不清楚。我已经通过回答我自己的问题说清楚了。

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

if __name__ == "__main__"

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