(mp_root := mp_root.parent)换成python3.7兼容的代码
时间: 2024-02-25 08:58:45 浏览: 19
在 Python 3.7 中,可以使用 `:=` 运算符来代替 `=` 运算符和变量复制操作。因此,可以将 `mp_root := mp_root.parent` 替换为以下代码:
```
mp_root = mp_root.parent
```
这样就可以在 Python 3.7 中兼容这段代码了。
相关问题
while (mp_root = mp_root.parent).name != 'mediapipe':
这段代码中的问题是在条件判断中使用了变量赋值语句。在 Python 中,赋值语句返回的是被赋的值,而不是 True 或 False,因此会导致语法错误。
正确的写法应该是:
```
while True:
mp_root = mp_root.parent
if mp_root.name == 'mediapipe':
break
# do something else
```
这段代码的作用是不断地获取当前节点的父节点,直到找到一个名为“mediapipe”的节点为止。在 while 循环中可以添加其它的逻辑,例如对每个节点进行处理等。
(mp_root = mp_root.parent)语法错误怎么解决
在 Python 中,赋值语句 `(mp_root = mp_root.parent)` 的返回值是被赋的值,而不是 True 或 False。因此,这个语法在 Python 中是被禁止的,会导致语法错误。
如果想要在 while 循环中同时进行赋值和比较操作,可以将赋值语句放在 while 循环内部,例如:
```
while True:
mp_root = mp_root.parent
if mp_root.name == 'mediapipe':
break
# do something else
```
这样,每次循环都会将 mp_root 的父节点赋值给 mp_root,并且判断该父节点的名称是否为“mediapipe”。如果是,则跳出循环,表示已经找到了“mediapipe”目录;如果不是,则继续循环。