如何访问 python 中的 class 成员数组
How to access class member array in python
我有一个 class 会员。如何访问遥感器温度的“值”?这是 pyecobee 模块对 ECOBEE 恒温器的响应。
我试过 thermostat_response.thermostatList
但它给了我错误“AttributeError: 'EcobeeThermostatResponse' object has no attribute 'thermostatList'”
我可以访问 thermostat_response.page
和 thermostat_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,
type=temperature,
value=696
),
RemoteSensorCapability(
id=2,
type=humidity,
value=62
),
RemoteSensorCapability(
id=3,
type=occupancy,
value=true
)
],
code=None,
id=ei:0,
inUse=True,
name=Living Room,
type=thermostat
)
],
runtime=None,
weather=None
)
]
)
这是EcobeeThermostatResponse的定义class
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 中的更多信息。
我有一个 class 会员。如何访问遥感器温度的“值”?这是 pyecobee 模块对 ECOBEE 恒温器的响应。
我试过 thermostat_response.thermostatList
但它给了我错误“AttributeError: 'EcobeeThermostatResponse' object has no attribute 'thermostatList'”
我可以访问 thermostat_response.page
和 thermostat_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,
type=temperature,
value=696
),
RemoteSensorCapability(
id=2,
type=humidity,
value=62
),
RemoteSensorCapability(
id=3,
type=occupancy,
value=true
)
],
code=None,
id=ei:0,
inUse=True,
name=Living Room,
type=thermostat
)
],
runtime=None,
weather=None
)
]
)
这是EcobeeThermostatResponse的定义class
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 中的更多信息。