请分析以下代码出现myuart = Uart("COM29", 9600) TypeError: Uart() takes no arguments错误的原因:import serial class Uart(object): def __int__(self, port, baud): self.err = 0 try: self.serial = serial.Serial(port, baud) # self.run_status = 1 print("Open serial success.") except: print("Open serial error!") self.err = -1 if __name__ == "__main__": myuart = Uart("COM29", 9600) if (0==myuart.err): print("Init Uart Success.")
时间: 2024-01-09 18:06:10 浏览: 283
uart0.rar_UART0 RS232_rs232驱动
在这段代码中,出现`TypeError: Uart() takes no arguments`错误的原因是在Uart类的构造函数中,定义为`__int__`而不是`__init__`,导致实例化对象时无法正确传递参数。
```python
class Uart(object):
def __int__(self, port, baud): # 错误的构造函数
self.err = 0
try:
self.serial = serial.Serial(port, baud)
print("Open serial success.")
except:
print("Open serial error!")
self.err = -1
```
应该将构造函数定义为`__init__`,正确的代码如下:
```python
class Uart(object):
def __init__(self, port, baud): # 正确的构造函数
self.err = 0
try:
self.serial = serial.Serial(port, baud)
print("Open serial success.")
except:
print("Open serial error!")
self.err = -1
```
这样在实例化Uart对象时,就可以正确传递参数了,例如:
```python
myuart = Uart("COM29", 9600)
```
这样就可以创建一个串口对象,并设置串口号为"COM29",波特率为9600。
阅读全文