Я пытаюсь получить доступ к свойству «getter» родительского класса объекта и передать его в качестве аргумента функции. Проблема в том, что он передает значение из «getter», а не саму функцию getter. Я хотел бы иметь возможность передавать эту функцию в другой класс и получать обновленное значение при каждом вызове.
Например, если значение, возвращаемое функцией-получателем, при передаче равно 77, передается значение 77, а не сама функция. Цель состоит в том, чтобы передать функцию, которая возвращает текущее значение, а не значение при первом прохождении.
Я попытался найти свойство в __dict__
объекта, но оно показывает только методы и т. Д. Для дочернего элемента. класс а не базовый класс. Я попытался использовать super как способ получить доступ к этому, но не смог выяснить, был ли это правильный путь.
################### Class definitions from library ###################
# The parent class from the library
class Adafruit_BME280():
# ... Removed Code ...
@property
def temperature(self):
self._read_temperature()
return self._t_fine / 5120.0
# The child class from the library
class Adafruit_BME280_I2C(Adafruit_BME280):
# ... Removed Code ...
################### My Code ###################
# My new class that is passed a function to get temperature
class TempSensor:
def __init__(self, get_temperature_func):
self.get_temperature = get_temperature_func
def print_temperature():
print(self.get_temperature)
# My main function where the object is created
def main():
bme280 = Adafruit_BME280_I2C()
temp_sensor = TempSensor(bme280.temperature)
temp_sensor.print_temperature
#
В приведенном выше коде, если температура, когда объект TempSensor составляет 77.0 градусов, когда онзатем создается temp_sensor.print_tempera, вместо текущей температуры всегда печатает 77.0 вместо текущей температуры.