如题,程序第4行开始,for循环接if判断,之后的name=self._nic_ovs_name_pattern.search(o) 指的是if条件判断返回true才执行赋值操作吗?还是if返回False执行的呢?最后一行的return ovs_nics,是什么条件满足后返回的呢?这个函数的整体执行顺序看的不是太明白,还请指教,谢谢.
def __extract_ovs_nic_detail(self, output):
ovs_nics = []
ovs_nic = {}
for o in output.split('\n'):
if '_uuid : ' in o:
ovs_nic = {}
name = self._nic_ovs_name_pattern.search(o)
if not name is None:
ovs_nic['name'] = name.group(2).strip('\"')
mac = self._nic_ovs_mac_pattern.search(o)
if not mac is None:
ovs_nic['mac'] = mac.group(2).strip('\"')
mtu = self._nic_ovs_mtu_pattern.search(o)
if not mtu is None:
ovs_nic['mtu'] = mtu.group(2)
speed = self._nic_ovs_speed_pattern.search(o)
if not speed is None:
ovs_nic['speed'] = str(int(speed.group(2)) / 1000000) + 'Mb/s'
if 'type : ' in o:
ovs_nics.append(ovs_nic)
return ovs_nics
就你给出的代码:
只要进入了 for 循环
name=self._nic_ovs_name_pattern.search(o)
就会执行,而跟if '_uuid : ' in o:
判断真假无关在任何情况下,
return ovs_nics
语句都会返回如果你想要阅读 python 代码,甚至写 python 程序的话,我建议你还是学习一下 python 语法,毕竟一般很快就能学会。推荐你看 《简明Python 教程》