我有以下代碼,但我想將其轉換爲模塊。 很顯然,如果我將此代碼作爲模塊丟失並且ser
將永遠不會初始化,並且Agent
類將不起作用。Python模塊全局變量
#module.py
class Agent:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def send(self, data):
message = data + ' ' + a
ser.write(message)
ser_r = serial.Serial(
port='COM6',
baudrate=500000,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
ser = io.TextIOWrapper(io.BufferedRWPair(self.ser_raw, self.ser_raw, 1),
newline='\r',
line_buffering=True)
於是我想出了一個主意,以創建具有ser
變量,然後在Agent
類使用Serial
類。
但現在還有另一個問題:如何在Agent
內部訪問Serial
而不創建Serial
的實例?用戶可以創建一個Serial
實例,但是我不知道Agent
中應該使用的名稱。我可以製作init
方法,然後在裏面創建Serial
類。導入用戶後,將調用init
方法,然後他可以使用它。
#module.py
class Agent:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def send(self, data):
message = data + ' ' + a
Serial.ser.write(message)
class Serial:
ser_r = serial.Serial(
port='COM6',
baudrate=500000,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
ser = io.TextIOWrapper(io.BufferedRWPair(self.ser_raw, self.ser_raw, 1),
newline='\r',
line_buffering=True)