Eli*_*ria 1 python string string-formatting python-3.x
我有一个对象列表.我试图在列表中输出有意义的对象表示,它使用最近版本的Python内置的字符串格式化功能来揭示一些实例变量.我使用的是Python 3.3.0.
我__str__在类中为列表中的对象定义了一个方法.如果我尝试打印单个对象,我将获得该__str__方法返回的表示.但是如果我尝试打印整个列表,我会得到通用表示,就像我没有定义__str__方法一样.这是一个例子:
class CustomClass:
def __init__(self):
self.instanceVar = 42
def __str__(self):
return "{} (instanceVar = {})".format(self.__class__.__name__, self.instanceVar)
testObject = CustomClass()
print("{}".format(testObject))
# CustomClass (instanceVar = 42)
print("{}".format([testObject]))
# [<__main__.CustomClass object at 0x1006cbed0>]
Run Code Online (Sandbox Code Playgroud)
如何获得第二个打印语句来打印类似的东西[CustomClass (instanceVar = 42)]?是否可以通过将正确的格式字符串传递给print函数来实现这一点,还是比它更复杂?
你需要定义__repr__我认为的方法
class CustomClass:
def __str__:
return "whatever"
def __repr__:
return str(self)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1110 次 |
| 最近记录: |