0

我是 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 语句中,布尔对象可以正确执行..?

4

1 回答 1

0

您正在尝试在 int 类型(ser = 0 在类 serialCommunication 中声明)上调用方法 .isOpen(),因为错误表明该对象没有此方法。

我看不到课程的其余部分,但您确定您不应该尝试直接引用该课程的方法吗?同样,如果没有实例,您调用的方法将需要是一个以 @classmethod 装饰器为前缀的类方法。

于 2013-11-12T09:15:47.717 回答