Python function question. For example, an external function a returns the current temperature In creating a function b that operates according to temperature,
def b (c = True):
while true:
if c:
Turn on the air conditioner.
else:
Turn off the air conditioner.
b( a() > 30 )
When I made it, When executing a function as shown above If you add a() > 30 to the c parameter, When the function is operated, it continuously calls the a() function to the return value at the time of execution without updating the situation The parameters become fixed. I think it's a natural result, but...
You change the conditions to temperature, or humidity, and you transfer the conditions to the parameters I want to keep the conditions of the external function updated within function b when the function is executed How should I pass it on to the parameter? Or is there any other way? I wonder if I can solve this problem by putting conditions in the parameters.
python function
It's a structure where functions and conditions can be changed, but I understood it in a form that can be checked within the function.
To make it as simple as possible,
class B:
def __init__(self, func, greater_than=None, less_than=None):
self.func = func
self.greater_than = greater_than
self.less_than = less_than
def _check_greater_than(data):
if self.greater_than:
return data > self.greater_than
return True
def _check_less_than(data):
if self.less_than:
return data < self.less_than
return True
def loop(self):
while True:
result = self.func()
if self._check_greater_than(result) and self._check_less_than():
print ("turn on the air conditioner")
else:
print ("Turn off the air conditioner")
b = B(a, greater_than=30)
b.loop()
I'm thinking about doing it like this
Put the function you want into func without running it
For greater_than, the value shown in func should be greater than any value (required X),
For less_than, the value shown in func should be less than any value (required X)
If you put it in like this, it will be automatically calculated.
© 2025 OneMinuteCode. All rights reserved.