我如何使用__str__方法python

时间:2014-09-23 04:48:54

标签: string python-3.x methods

如何使用str方法以逗号分隔和方括号显示列表 例如:

试验:

  

my_list = UnorderedList()

     

表示范围(5)中的i:

  my_list.add(i) 
     

打印(my_list)

结果:

  

[4,3,2,1,0]

3 个答案:

答案 0 :(得分:1)

print函数(或Python 2.x中的语句)已经在其参数上调用str,因此您不必执行任何

>>> print([1, 2, 3])
[1, 2, 3]
>>> print([])
[]
>>> a = [1, 2, 3]
>>> print(a)
[1, 2, 3]

正如文件所说:

  

所有非关键字参数都转换为str()之类的字符串并写入流...


如果除了打印之外还希望将字符串用于其他目的(例如,写入文件),您可以随时在其上调用str。它只是一个像其他任何函数一样的函数(嗯,类型构造函数,但不要担心):

>>> s = str(a)
>>> s
'[1, 2, 3]'

正如文档所解释的那样:

  

str(object)返回object.__str__(),这是对象的“非正式”或可打印的字符串表示形式。对于字符串对象,这是字符串本身。如果对象没有__str__()方法,则str()会回退到repr(object)

答案 1 :(得分:0)

您可以简单地使用str()函数并将列表作为要显示的参数传递。例如,

tmp_list = [1,2,3,4]

print str(tmp_list)

答案 2 :(得分:0)

它们用于提供字符串表示形式,而repr用于专门在控制台或打印中表示对象时提供对象表示形式

class StringRepresentation:
    def __init__(self):
        pass

    def __str__(self):
        return "String Representation of Object used when object used as string represenation"

    def __repr__(self):
        return "Object Representation"


obj = StringRepresentation()
print(str(obj))```

UnorderedList is printing because this is the way how it __str__ or __repr__ is implemented