【发布时间】:2017-09-05 15:18:43
【问题描述】:
我想将一个类的名称设置为该类中的一个变量,以便在打印类时我得到它们的名称,我尝试设置 __name__ 但它不起作用。
这是我的课
class SNMPData(object):
def __init__(self, device='', speed_down=0, speed_up=0, bgp_peer_state='', bgp_summary='', error=''):
self.device = device
self.speed_down = speed_down
self.speed_up = speed_up
self.bgp_peer_state = bgp_peer_state
self.bgp_summary = bgp_summary
self.error = error
self.__name__ = device
我创建了一个对象列表,然后尝试打印它们
>>> list = [SNMPData(device='dev_1',speed_down=1),SNMPData(device='dev_2',speed_down=2)]
>>> print(list)
[<SNMPData object at 0x7ff052a42ef0>, <SNMPData object at 0x7ff052a42b38>]
>>>
而不是 0x 处的 SNMPData 对象....是否可以打印
['SNMPData dev_1','SNMPData dev_2']
改为?
【问题讨论】:
-
你在找
__repr__ -
如果描述“足够小”,建议重新说明如何创建对象,例如
SNMPData(device='{device}'),但如果它的状态非常重,只需做一些通用的<SNMPData device={device} ...>。
标签: python python-3.x