我有一个代码返回一个列表:
from pysnmp.entity import engine, config
from pysnmp import debug
from pysnmp.entity.rfc3413 import cmdrsp, context, ntforg
from pysnmp.carrier.asynsock.dgram import udp
from pysnmp.smi import builder
import threading
import collections
import time
MibObject = collections.namedtuple('MibObject', ['mibName',
'objectType', 'valueFunc'])
class Mib(object):
"""Stores the data we want to serve.
"""
def __init__(self):
self._lock = threading.RLock()
self._test_count = 0
self._test_get = 10
self._test_set = 0
def getTestDescription(self):
return "My Description"
def getTestCount(self):
with self._lock:
return self._test_count
def setTestCount(self, value):
with self._lock:
self._test_count = value
def getTestGet(self):
return self._test_get
def getTestSet(self):
return self._test_set
def setTestSet(self):
with self._lock:
self._test_set = value
class ListObject:
def __init__(self):
mib = Mib()
self.objects = [
MibObject('MY-MIB', 'testDescription', mib.getTestDescription),
MibObject('MY-MIB', 'testCount', mib.getTestCount),
MibObject('MY-MIB', 'testGet', mib.getTestGet),
MibObject('MY-MIB', 'testSet', mib.getTestSet)
]
def returnTest(self):
return ListObject()
class main ():
print ListObject()
但有时它会返回对象变量,然后它会返回:
<__main__.ListObject instance at 0x16917e8>
我做错什么了?你知道吗
将对象传递给python
print
时,打印的字符串由其类“str”方法给出。你知道吗<main.ListObject instance at 0x16917e8>
是__str__
方法的默认实现返回的字符串。如果尚未为类重写此方法,则结果只是预期的结果。你知道吗编辑:
如果要在写入
print ListObject()
时打印objects
,则必须重写ListObject
__str__(self)
方法:相关问题 更多 >
编程相关推荐