我是python的新手,我知道有很多讨论,但我还有一个问题。我试图从类访问一个变量到一个相同的类函数,它通过一个错误
“AttributeError:'int'对象没有属性'isOpen'”
代码是:
class serialCommunication():
ser = 0 #class global variable
def ser_port():
.....
def ser_Burdrate():
BurdRate = ( "4800",
"9600",
"19200",
"38400",
"57600",
"115200"
)
BR = int(input("Enter the Burd Rate\n0\t--\t4800\n1\t--\t9600\n2\t--\t19200\n3\t--\t38400\n4\t--\t57600\n5\t--\t115200\n\n"))
return Portno , int(BurdRate[BR]), timeout
def ser_open():
port = serialCommunication.ser_Burdrate()
serialCommunication.ser = serial.Serial(port[0], port[1], timeout=port[2])
port = serialCommunication.ser.getPort()
print (serialCommunication.ser , '\r\n')
.....
def ser_Write():
if (serialCommunication.ser.isOpen()):
print ('open: ', serialCommunication.ser.getPort())
elif (serialCommunication.ser.closed()):
serialCommunication.ser_open()
请同意建议
感谢我改变的建议
ser = serial.Serial()
并且它正在经历一个错误
“TypeError:'bool'对象不可调用”
在if语句中bool对象可以正确执行..?
答案 0 :(得分:0)
您正在尝试在int类型上调用方法.isOpen()(在serialCommunication类中声明的ser = 0),因为错误表明该对象没有此方法。
我看不到课程的其他部分,但你确定你不应该试图直接引用该课程的方法吗?也没有实例,你调用的方法需要是一个以@classmethod装饰器为前缀的类方法。