访问python 3.3.2中的函数变量

时间:2013-11-12 09:05:43

标签: python python-3.x pyserial

我是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对象可以正确执行..?

1 个答案:

答案 0 :(得分:0)

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

我看不到课程的其他部分,但你确定你不应该试图直接引用该课程的方法吗?也没有实例,你调用的方法需要是一个以@classmethod装饰器为前缀的类方法。