Я хочу общаться на Python, используя pySerial с последовательным интерфейсом, но моя проблема в том, что я получаю эту ошибку: «AttributeError: объект 'str' не имеет атрибута '_port_handle'», когда я запускаю свою программу. Вот мой код:
import serial
serial.Serial.__init__("COM11", 115200, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE)
Я надеюсь, что кто-то может мне помочь, потому что у всех в Интернете есть один и тот же код для инициализации последовательного порта.
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что ОП даже не удосужился прочитать документ.
Никогда не звоните в __init__()
напрямую. Это метод конструктора, который неявно вызывается при создании объекта.
https://docs.python.org/3/reference/datamodel.html#object.__init__
Пытаться:
serial.Serial("COM11", 115200, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE)
И если это не сработает, проверьте подпись этого класса Serial
. Возможно, что первым параметром, который вы указываете, не должен быть str
. Но это должно исправить.
Документ к этому __init__()
есть: https://pythonhosted.org/pyserial/pyserial_api.html#serial.Serial.__init__
И такое ощущение, что все ваши параметры запутались. Попробуйте назвать их в конструкторе.
Причина ошибки в том, что метод __init__()
всегда принимает self
в качестве первого параметра. OP вызывается со строкой в качестве первого параметра, отсюда ошибка и эффект запутанных параметров.
На самом деле, да, делать вызывает __init__()
напрямую, чаще всего из метода инициализации производного класса.
Вам не нужен метод в этом (). Вы просто пишете serial.Serial (...). глянь сюда
«у всех в Интернете есть один и тот же код для инициализации последовательного порта» => ну, очевидно, нет.