Python 获取/设置串行类属性

Python 获取/设置串行类属性,python,inheritance,pyserial,Python,Inheritance,Pyserial,我正在使用PySerial连接到一个线程连接。这是我简化的第一类继承线程和运行串行: from threading import Thread import serial, inspect class Serial1(Thread): def __init__(self,main_queue,port = "COM1") self.ser = serial.Serial() self.queue = main_queue self.port = port def

我正在使用PySerial连接到一个线程连接。这是我简化的第一类继承线程和运行串行:

from threading import Thread
import serial, inspect

class Serial1(Thread):

def __init__(self,main_queue,port = "COM1")

    self.ser = serial.Serial()
    self.queue = main_queue
    self.port = port

def open(self):

    self.ser.port = self.port
    if self.ser.isOpen():
        self.ser.close()
    self.ser.open()
    Thread.__init__(self)
    self.start()
之后,我创建了另一个类似的类Serial2,它继承Thread并使用Serial1:

from Queue import Queue
from threading import Thread
import serial1

class Serial2(Thread):

def __init__(self,main_queue,port = "COM2")

    self.ser = serial1.Serial1()
    self.queue = main_queue
    self.port = port

def open(self):
    self.ser = serial1.Serial1(self.queue, self.port)
    if self.ser.open() == True:
        Thread.__init__(self)
        if self.isAlive() == False:
            self.start()
完成所有这些之后,如何在Serial1和Serial2上设置/获取串行端口属性?假设我在脚本中使用Serial1和Serial2:

from Queue import Queue
import serial2
import serial1

q1 = Queue(maxsize = 1)
q2 = Queue(maxsize = 1)

s1 = serial1.Serial1(q1, "COM4" )
s2 = serial2.Serial2(q2, "COM2" )

#get port value from Serial1 and Serial2
port1 = s1.port
port2 = s2.port

#set Serial1 and Serial2 port value
s1.port = "COM3"
s2.port = "COM1"
我以前尝试过在Serial1中使用getter/setter,但它们导致了无限递归:

def getport(self): 
    return self.port

def setport(self, port): #when first initialising self.port, it goes and get stuck here
    self.port = port

port = property(getport,setport)

这太尴尬了

我终于得到了一个答案,答案相当简短:

def getport(self): 
    return self.ser.port

def setport(self, port):
    self.ser.port = port

port = property(getport,setport)