Python类实例返回值

Python类实例返回值,python,class,instance,return-value,Python,Class,Instance,Return Value,我的问题如下:我有一个带有两个方法的类任务窗格。实例化按其应有的方式工作。现在,当我显示所有实例化对象的列表时,我想为每个对象打印一个成员变量,例如_tp_nr 下面的代码返回正确的值,但它以奇怪的(?)格式返回 代码如下: #import weakref class Taskpane(): '''Taskpane class to hold all catalog taskpanes ''' #'private' variables _tp_nr = ''

我的问题如下:我有一个带有两个方法的类任务窗格。实例化按其应有的方式工作。现在,当我显示所有实例化对象的列表时,我想为每个对象打印一个成员变量,例如_tp_nr

下面的代码返回正确的值,但它以奇怪的(?)格式返回

代码如下:

#import weakref

class Taskpane():
    '''Taskpane class to hold all catalog taskpanes '''

    #'private' variables
    _tp_nr = ''
    _tp_title = ''
    _tp_component_name = ''

    #Static list for class instantiations
    _instances = []

    #Constructor
    def __init__(self, 
                  nr, 
                  title, 
                  component_name):

      self._tp_nr             = nr, 
      self._tp_title          = title, 
      self._tp_component_name = component_name

      #self.__class__._instances.append(weakref.proxy(self))
      self._instances.append(self)

    def __str__(self):
      return str( self._tp_nr )      

    def setTaskpaneId(self, value):
      self._tp_nr = value

    def getTaskpaneId(self):
      return str(self._tp_nr)

    def setTaskpaneTitle(self, value):
      self._tp_title = value

    def getTaskpaneTitle(self):
      return str(self._tp_title)

    def setTaskpaneComponentName(self, value):
      self._tp_component_name = value

    def getTaskpaneComponentName(self):
      return self._tp_component_name  

tp1 = Taskpane( '0', 'Title0', 'Component0' )
tp2 = Taskpane( '1', 'Title1', 'Component1' )

#print Taskpane._instances

#print tp1

for instance in Taskpane._instances:
    print( instance.getTaskpaneId() )

for instance in Taskpane._instances:
    print( instance.getTaskpaneTitle() ) 
结果:

('0',)
('1',)

('Title0',)
('Title1',)
问题是: 为什么它以这种格式返回结果?我只希望看到:

'0'
'1'

('Title0')
('Title1')
使用时:

for instance in Taskpane._instances:
    print( instance._tp_nr )

结果是相同的。

删除将值转换为元组的尾随逗号。

删除将值转换为元组的尾随逗号。

删除构造函数中此字符串末尾的逗号:

self._tp_id             = nr, 
self._tp_title          = title, 

Python将此类表达式视为具有一个元素的元组

在构造函数中删除此字符串末尾的逗号:

self._tp_id             = nr, 
self._tp_title          = title, 

Python将此类表达式视为具有一个元素的元组

您正在使用逗号创建元组:

self._tp_id             = nr, 
逗号使
\u tp\u id
成为元组:

>>> 1,
(1,)

您正在使用逗号创建元组:

self._tp_id             = nr, 
逗号使
\u tp\u id
成为元组:

>>> 1,
(1,)

你只是有一些语法问题,所以你的答案对其他任何人都没有帮助(因此我投了反对票)。@Alfe除了知道这可能是一个问题之外……是的,但这在所有情况下都是一个随机发现。如果标题是“为什么不使用这些尾随逗号”之类的话,一切都会好起来。你只是有一些语法问题,所以你的答案对任何人都没有帮助(因此我投了反对票)。@Alfe除了知道这可能是个问题之外……是的,但这在所有情况下都是一个随机发现。如果标题是“为什么不能使用这些尾随的逗号”,一切都会很好。这太可怕了。我的错误:-$谢谢。这太可怕了。我的错误:-$谢谢。谢谢你的帮助。似乎是个典型的错误。谢谢你的帮助。这似乎是一个典型的错误。