如何在python中访问类成员数组 如果没有文档怎么办?

问题描述

我有一个班级成员。如何访问遥感器温度的“值”?这是pyecobee模块对ECOBEE温控器的响应。

我尝试了thermostat_response.thermostatList,但它给了我错误消息“ AttributeError:'EcobeeThermostatResponse'对象没有属性'thermostatList'”

我可以访问thermostat_response.pagethermostat_response.status,但不能访问thermostat_response.thermostatList

thermostat_response = EcobeeThermostatResponse(
  page=Page(
    page=1,pageSize=1,total=1,totalPages=1
  ),status=Status(
    code=0,message=
  ),thermostatList=[
    Thermostat(
      alerts=None,modelNumber=athenaSmart,reminders=None,remoteSensors=[
        RemoteSensor(
          capability=[
            RemoteSensorCapability(
              id=1,type=temperature,value=717
            ),RemoteSensorCapability(
              id=2,type=occupancy,value=true
            )
          ],code=EDGJ,id=rs:100,inUse=False,name=bedroom,type=ecobee3_remote_sensor
        ),RemoteSensor(
          capability=[
            RemoteSensorCapability(
              id=1,value=696
            ),type=humidity,value=62
            ),RemoteSensorCapability(
              id=3,code=None,id=ei:0,inUse=True,name=Living Room,type=thermostat
        )
      ],runtime=None,weather=None
    )
  ]
)

这是EcobeeThermostatResponse类的定义

class EcobeeThermostatResponse(EcobeeStatusResponse):
    __slots__ = ['_page','_thermostat_list']

    attribute_name_map = {'page': 'page','thermostat_list': 'thermostatList','thermostatList': 'thermostat_list','status': 'status'}

    attribute_type_map = {'page': 'Page','thermostat_list': 'List[Thermostat]','status': 'Status'}

    def __init__(self,page,thermostat_list,status):
        """
        Construct a EcobeeThermostatResponse instance

        :param page: The page information for the response
        :param thermostat_list: The list of thermostats returned by the request
        :param status: The api response code
        """
        self._page = page
        self._thermostat_list = thermostat_list
        EcobeeStatusResponse.__init__(self,status)

    @property
    def page(self):
        """
        Gets the page attribute of this EcobeeThermostatResponse instance.

        :return: The value of the page attribute of this EcobeeThermostatResponse instance.
        :rtype: Page
        """
        return self._page

    @property
    def thermostat_list(self):
        """
        Gets the thermostat_list attribute of this EcobeeThermostatResponse instance.

        :return: The value of the thermostat_list attribute of this EcobeeThermostatResponse instance.
        :rtype: List[Thermostat]
        """
        return self._thermostat_list

解决方法

根据documentation,您可以使用thermostat_response.thermostat_list()(作为函数)。


如果没有文档怎么办?

万一遇到类似问题并且没有文档,可以使用Python的dir()输出对象的所有属性,例如在您的情况下:

`dir(thermostat_response)`

有关this SO question中的详细信息。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...