初始化函数变量一次&调用函数时更改变量值

2024-09-29 02:22:46 发布

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

语言:Python

我希望在执行开始时将变量的值初始化为零。此变量在函数中使用,其值也可能在函数中更改。但我不想在函数调用时将这个变量的值重置为零。相反,它的值应该等于上一次函数调用的更新值。你知道吗

示例:
get_current()在被调用时不断返回不同的值。 ctemp最初为零。 在第一个函数调用中,get_current_difference()将返回cdiff&;然后更新ctemp的值,以便ctemp = current。 在第二个函数调用中,ctemp的值不应为零。相反,它应该等于第一次函数调用的更新值。你知道吗

import serial
arduino = serial.Serial('/dev/ttyACM1',9600)
ctemp = 0

def get_current():
    line = arduino.readline()
    string = line.replace('\r\n','')
    return string

def get_current_difference():
    global ctemp
    current = get_current()
    cdiff = float(current) - ctemp
    return cdiff
    ctemp = current

while 1:
    current = get_current_difference()
    print(current)

Tags: 函数语言getstringreturndeflineserial
2条回答

您正在描述可变状态和修改它的函数,这就是类的用途。你知道吗

class Temperature:
    def __init__(self, arduino):
        self.ctemp = 0
        self.arduino = arduino

    def current(self):
        line = self.arduino.readline()
        return line.replace('\r\n', '')

    def difference(self):
        current = self.current()
        cdiff = float(current) - self.ctemp
        self.ctemp = current
        return cdiff

t = Tempurature(serial.Serial('/dev/ttyACM1', 9600)
while True:
    print(t.difference())

例如,如果要使用多个温度监视器,则使用类scales。你知道吗

在设置ctemp值之前返回

return cdiff
ctemp = current

必须成为

ctemp = current
return cdiff

相关问题 更多 >