我有一个对象列表:
class MyObj():
def __init__(self, value):
self._value = value
def __get__(self, instance, owner):
return self._value
myList = []
myObj = MyObj(100)
myList.append(myObj)
print("Value of object: " + myList[0])
结果:
Value of object: <__main__.MyObj object at 0x031807F0>
我想看的是:
Value of object: 100
具体来说,我想返回_value
,我不想覆盖__str__()
只是“打印”值-我想引用存储在{{1 }}。
这在Python中可行吗?要仅访问对象本身时返回“默认”值,而不访问具有这些_value
描述符的对象的“属性”?
答案 0 :(得分:0)
要影响对象如何设置为字符串格式,您需要实现__str__
方法,如下所示:
class MyObj():
def __init__(self, value):
self._value = value
def __str__(self):
return str(self._value)
答案 1 :(得分:-1)
我认为您正在寻找__str__
,并且不需要使用str concat进行打印,可以使用内置的打印功能。
像这样的东西。
class MyObj():
def __init__(self, value):
self._value = value
def __str__(self):
return str(self._value)
myList = []
myObj = MyObj(100)
myList.append(myObj)
print("Value of object: ", myList[0])