Rumah  >  Soal Jawab  >  teks badan

panggilan kaedah python

Sebahagian daripada kod:

#打开串口
ser=serial.Serial('COM3', 9600)
#开启一个线程
th=threading.Thread(target=thread_read, args=(ser, msg_parsed))
th.start()

def thread_read(ser, callback=None):
     buf=b' '
     while running.is_set():
            buf=read_data(ser, buf,callback=None)

def read_data(ser, buf, callback=None):
     if callback is None:
            callback=print
     buf +=  ser.read(ser.inwaiting())

Mengapa saya mendapat ralat semasa memanggil inwaiting() dalam kaedah read_data() , memberitahu saya bahawa ia tidak mempunyai atribut 'inwaiting()'? Ia adalah perkara biasa untuk menulis ser.inwaiting() di luar kaedah rujukan objek bersiri ke dalam kaedah Hit? Guru buku menjawab!

学习ing学习ing2686 hari yang lalu1054

membalas semua(2)saya akan balas

  • 天蓬老师

    天蓬老师2017-06-12 09:25:06

    Jangan melepasi objek, cuba gunakan pembolehubah global

    balas
    0
  • 大家讲道理

    大家讲道理2017-06-12 09:25:06

    print(dir(ser))打印ser的所有方法,找到inWaitingin_waiting, tiada menunggu, jadi ralat dilaporkan.
    Adakah anda pasti anda sedang menelefon menunggu di luar?

    ['BAUDRATES', 'BYTESIZES', 'PARITIES', 'STOPBITS', '_GetCommModemStatus', '_SAVED_SETTINGS', '__abst
    ractmethods__', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__'
    , '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__'
    , '__iter__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__next__', '__reduce__', '__re
    duce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_abc_cache', '_
    abc_negative_cache', '_abc_negative_cache_version', '_abc_registry', '_baudrate', '_break_state', '_
    bytesize', '_cancel_overlapped_io', '_checkClosed', '_checkReadable', '_checkSeekable', '_checkWrita
    ble', '_close', '_dsrdtr', '_dtr_state', '_inter_byte_timeout', '_orgTimeouts', '_overlapped_read',
    '_overlapped_write', '_parity', '_port', '_port_handle', '_reconfigure_port', '_rs485_mode', '_rts_s
    tate', '_rtscts', '_stopbits', '_timeout', '_update_break_state', '_update_dtr_state', '_update_rts_
    state', '_write_timeout', '_xonxoff', 'applySettingsDict', 'apply_settings', 'baudrate', 'break_cond
    ition', 'bytesize', 'cancel_read', 'cancel_write', 'cd', 'close', 'closed', 'cts', 'dsr', 'dsrdtr',
    'dtr', 'fileno', 'flush', 'flushInput', 'flushOutput', 'getCD', 'getCTS', 'getDSR', 'getRI', 'getSet
    tingsDict', 'get_settings', 'inWaiting', 'in_waiting', 'interCharTimeout', 'inter_byte_timeout', 'ir
    ead_until', 'isOpen', 'is_open', 'isatty', 'name', 'open', 'out_waiting', 'parity', 'port', 'portstr
    ', 'read', 'read_all', 'read_until', 'readable', 'readall', 'readinto', 'readline', 'readlines', 're
    set_input_buffer', 'reset_output_buffer', 'ri', 'rs485_mode', 'rts', 'rtscts', 'seek', 'seekable', '
    sendBreak', 'send_break', 'setDTR', 'setPort', 'setRTS', 'set_buffer_size', 'set_output_flow_control
    ', 'stopbits', 'tell', 'timeout', 'truncate', 'writable', 'write', 'writeTimeout', 'write_timeout',
    'writelines', 'xonxoff']

    balas
    0
  • Batalbalas