如何在main def中调用类的函数?

2024-03-28 08:22:41 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在main def中调用类的函数。我试着给self打电话。“function”和“classname”,“function”,但都不起作用。。。我想要的是在def main()中调用PiThread的def Temperature(self)。你知道吗

班级:

class PiThread(threading.Thread):

    Lock = threading.Lock()

    # Lueftersteuerung bereitstellen
    Motor1 = GPIO.PWM(17,500)   # PWM mit Frequenz 500Hz
    Motor2 = GPIO.PWM(27,500)   # PWM mit Frequenz 500Hz

    # 4 byte Sensordaten anfordern
    Readout = bus.read_i2c_block_data(address,0,4)
    CommandMode = (Readout[0] & 128) > 0
    Stale = (Readout[0] & 64) > 0

    # Sensor initialisieren
    def SensorRequest(self):
        void = bus.write_quick(address)

    def Temperature(self):
        RawTemperature = (self.Readout[2] * 256 + (self.Readout[3] & 252)) / 4
        Temperature = round((165.0 / 16384) * RawTemperature - 40.0, 1)
        return Temperature

    def Humidity(self):
        RawHumidity = (self.Readout[0] & 63) * 256 + self.Readout[1]
        Humidity = round(100.0 * RawHumidity / 16384, 1)
        return Humidity 

主要内容:

def main():
    # Thread starten
    controller = PiThread(SwitchTimes, GPIO);
    controller.start()

    while 1:
        # Eingabefeld fuer Konsolenbefehle bereitstellen
        command = raw_input("> ")
        PiThread.Lock.acquire()
        # Debug Informationen ausgeben
        print "Luftfeuchte: ", PiThread.Humidity, "%"
        print "Temperatur: ", PiThread.Temperature, "°C"
        print "--------"
        print "Luefter1 DC:", PiThread.x, "%"
        print "Luefter2 DC:", PiThread.y, "%"
        print "--------"

        if command == "exit":
            controller.stopIT();
            break
        PiThread.Lock.release()
    controller.join()

if __name__ == '__main__':
    main()

Tags: selflockgpiomaindeffunctionthreadprint
1条回答
网友
1楼 · 发布于 2024-03-28 08:22:41

温度和湿度是实例方法,因此需要为特定实例调用它们

print "Luftfeuchte: ", controller.Humidity(), "%"
print "Temperatur: ", controller.Temperature(), "°C"

或者使用@classmethod decorator。你知道吗

https://docs.python.org/2/tutorial/classes.html#instance-objects
https://docs.python.org/2/library/functions.html#classmethod

相关问题 更多 >