我有以下代码,但我想将其转换为模块。 很显然,如果我将此代码作为模块丢失并且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)