注意时间 2024/3/7 ,未来的github代码中作者可能会进行修改。
运行 yolov9 detect.py 文件时报错。
解决
参考文章
其中,common.py 文件在models 文件夹下。
解释
等号右边的 self._model_type(w)
返回的变量太多,=
左边的变量太少接收不完。
在Python中,*和_可以结合使用,具体含义取决于它们所处的上下文。
- 用于解包:
当*用于解包时,它可以用来接收任意数量的参数或将序列解包成单独的元素。
def func(*args):
for arg in args:
print(arg)
func(1, 2, 3) # 输出:1 2 3
在这个例子中,*args表示可以接收任意数量的位置参数。
- 用于扩展列表或元组:
*也可以用在列表或元组前面,将其扩展为单独的元素。
list1 = [1, 2, 3]
list2 = [*list1, 4, 5] # 等同于 [1, 2, 3, 4, 5]
print(list2)
- _ 用作占位符:
_经常用作一个占位符或忽略特定值的变量名。
for _ in range(3):
print("Hello!") # 输出 "Hello!" 三次
在这个例子中,_作为一个临时变量,用于循环迭代,但我们并不关心其具体的值。
- *_ 用于忽略多余的值:
当解包时,*_可以用来忽略多余的值。
a, b, *_ = [1, 2, 3, 4, 5]
print(a, b) # 输出:1 2
在这个例子中,a和b分别被赋值为1和2,而剩余的值3、4、5被赋给了*_,但由于使用了_,这些值被忽略了。
综上所述,*和_在Python中有多种用途,它们可以用于函数参数解包、列表扩展、作为占位符,以及在解包时忽略不需要的值。
* 代表任意数量,_代表占位符,*_代表任意数量的占位符