我正在尝试创建一个类对象数组。当我创建对象时,它工作得很好:
class Complex(object):
def __init__(self, realpart, imagpart):
#creates complex number
self.r = realpart
self.i = imagpart
def __str__(self):
'''Returns complex number as a string'''
return '(%s + %s j)' % (self.r, self.i)
a = Complex(1,0)
print a
(1 + 0 j)
但是当我尝试将 a 放入数组时,出现错误:
arr1 = [a]
[<__ main __.Complex object at 0x5afab0>]
为什么会发生这种情况?提前致谢。
最佳答案
因为使用了__repr__
而不是__str__
。覆盖 Ashwini Chaudhary 评论的 __repr__
。
>>> class Complex(object):
... def __init__(self, realpart, imagpart):
... self.r = realpart
... self.i = imagpart
... def __str__(self):
... '''Returns complex number as a string'''
... return '(%s + %s j)' % (self.r, self.i)
... __repr__ = __str__ # <-----
...
>>> a = Complex(1,0)
>>> [a]
[(1 + 0 j)]
关于数组中的 Python 类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21276998/