返回列表python

2024-04-25 05:52:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个代码返回一个列表:

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>

我做错什么了?你知道吗


Tags: fromtestimportselflockreturnmydef
1条回答
网友
1楼 · 发布于 2024-04-25 05:52:01

将对象传递给pythonprint时,打印的字符串由其类“str”方法给出。你知道吗

<main.ListObject instance at 0x16917e8>__str__方法的默认实现返回的字符串。如果尚未为类重写此方法,则结果只是预期的结果。你知道吗

编辑:

如果要在写入print ListObject()时打印objects,则必须重写ListObject__str__(self)方法:

class ListObject:
    def __str__(self):
        return self.objects.__str__()

相关问题 更多 >