【发布时间】:2017-12-26 17:20:39
【问题描述】:
#!/usr/bin/python
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.link import Link
from mininet.log import setLogLevel, info
from mininet.cli import CLI
class myNetwork(Topo):
"three users connected to cloud"
def build(self, **_opts):
#create switch
s1 = \
[ self.addSwitch for s in 's1' ]
#create hosts
h1, h2, h3 = \
[ self.addHosts for h in 'h1', 'h2', 'h3' ]
#create links
[for h,s in [(h1,s1), (h2,s1), (h3,s1)]: self.addLink(h,s)
def run():
topo = myNetwork()
net = Mininet(topo=topo)
net.start()
CLI(net)
net.stop()
if __name__=='__main__':
setLogLevel('info')
run()
当我尝试在 mininet 中运行我的 python 脚本时,我得到了错误:
不可散列的类型:'list'
我尝试对此进行研究,并且我理解错误的含义,但我不确定为什么在运行我的 python 脚本时会出现此错误。
【问题讨论】:
-
self.addSwitch for s in 's1'什么???如果你不掌握列表推导,那么就不要使用它们。
标签: python network-programming mininet