python - 为什么 pyserial 在有 11 个参数时说我已经给出了 12 个参数?

标签 python pyserial

我正在使用 pyserial 打开 python 连接:

self.fpga = serial.Serial(self.fpgaport, 115200, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE, self.fpgapollinterval, False, False, None, False, None)

这与在此处找到的 pyserial 文档相匹配:

__init__(port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=False, rtscts=False, writeTimeout=None, dsrdtr=False, interCharTimeout=None)

但是,当我运行脚本时,出现了这个错误:

line 391, in run

self.fpga = serial.Serial(self.fpgaport, 115200, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE, self.fpgapollinterval, False, False, None, False, None)

TypeError: __init__() takes at most 11 arguments (12 given)

当我取出最后一个参数(最后一个 None)时,错误消失了。

我还打印了所有变量名,以防其中一个超过一维。也不是那样。

我使用的是 python 2.6.6,文档是针对 pyserial 2.6 的。我一直在努力寻找如何找到我正在使用的序列号版本。

为什么 python 声称我提供了 12 个参数,而我只提供了 11 个参数?我一定在这里遗漏了一些东西。

编辑:

如何知道我安装的是哪个序列版本?我正在运行的这段代码可能是为另一个版本的 python(也是串行的)编写的。我需要找出我想要的序列版本作为参数。

最佳答案

您正在隐式传递 self 作为第一个参数。


我知道这个答案不能解决你的问题,但这就是为什么你的解释器告诉你你传递了 12 个参数,而你实际上只传递了 11 个显式参数。因此,答案确实提供了您问题的答案。如果您需要有关程序的进一步帮助,请提出一个新的、更具体的问题。

关于python - 为什么 pyserial 在有 11 个参数时说我已经给出了 12 个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16060188/

相关文章:

python - 根据特定字符串过滤网站

python - 如何在 Python 中调用 sudo 密码请求

python - 使用pyserial读取Scale显示b''

Python 换出 sys.modules 并不像直觉那样工作

python - 具体什么时候函数作用域(框架)被删除?

python - pySerial 程序无法正确读取串行

python - 使用Python操作31位

python - pySerial:如何检查当前波特率

Python 在时间序列数据框中填充零并保留现有值

python - Cython:如何包装返回 C++ 对象的 C++ 函数?