猿问

python下for循环接if判断的函数执行顺序

如题,程序第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


qq_花开花谢_0
浏览 1560回答 1
1回答

胡子哥哥

就你给出的代码:只要进入了 for 循环 name=self._nic_ovs_name_pattern.search(o) 就会执行,而跟 if '_uuid : ' in o: 判断真假无关在任何情况下,return ovs_nics 语句都会返回
随时随地看视频慕课网APP
我要回答