Python3:访问对象的父类属性

时间:2019-11-10 01:24:16

标签: python python-3.x properties

我正在尝试访问对象的父类的“ getter”属性,并将其作为函数参数传递。问题在于它是从“ 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_temperature始终打印77.0,而不是当前温度。

0 个答案:

没有答案