''default'of an object? __get__仅适用于属性,不适用于对象本身

问题描述 投票:-2回答:1

我有一个对象列表:

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

[[edit]具体来说,我想返回_value,我不想重写str()只是“打印”值-我希望引用存储在_value中的对象。] >

在Python中可能吗?要仅访问对象本身时返回“默认”值,而不访问具有这些__get__描述符的对象的“属性”?

我有一个对象列表:类MyObj():def __init __(self,value):self._value =值def __get __(self,instance,owner):返回self._value myList = [] myObj = MyObj(100 )...

python overriding descriptor
1个回答
0
投票

为了影响对象格式化为字符串的方式,您需要实现__str__方法,如下所示:

© www.soinside.com 2019 - 2024. All rights reserved.