我正在尝试使用numpy数组创建一个计算机械臂末端效应器位置的函数,但是在代码运行时遇到错误。我有一个以角度作为参数传递的函数。
def FinalPosition(angle1, angle2, angle3, angle4, angle5, angle6):
我的IDE突出显示了数组的最后两行:
T1 = np.array([np.cos(angle1), -np.sin(angle1)*np.cos(b1), np.sin(angle1)*np.sin(b1), a1*np.cos(angle1)],
[np.sin(angle1), np.cos(angle1)*np.cos(b1), -np.cos(angle1)*np.sin(b1), a1*np.sin(angle1)],
[0, np.sin(b1), np.cos(b1), d1],
[0, 0, 0, 1])
我得到的错误是:
.............................................in FinalPosition
[0, np.sin(b1), np.cos(b1), d1], [0, 0, 0, 1])
ValueError: only 2 non-keyword arguments accepted
不确定问题是什么,有人可以解释一下吗?
编辑:最后两行的IDE高亮显示了这一点。
Expected type 'Optional[bool]', got 'List[Union[int | TypeVar('T'), Any]]' instead less... (Ctrl+F1 Alt+T)
此检查检测函数调用表达式中的类型错误。由于动态调度和鸭子打字,这在有限但有用的情况下是可能的。函数参数的类型可以在文档字符串或Python 3函数注释中指定。
答案 0 :(得分:9)
@hpaulj和@ForceBru在评论中回答。缺少一组[]括号。
np.array([ your lists ])