gpt4 book ai didi

Python 基类方法调用 : unexpected behavior

转载 作者:太空狗 更新时间:2023-10-30 00:28:54 26 4
gpt4 key购买 nike

为什么 str(A()) 在下面的例子中似乎调用了 A.__repr__() 而不是 dict.__str__()

class A(dict):
def __repr__(self):
return 'repr(A)'
def __str__(self):
return dict.__str__(self)

class B(dict):
def __str__(self):
return dict.__str__(self)

print 'call: repr(A) expect: repr(A) get:', repr(A()) # works
print 'call: str(A) expect: {} get:', str(A()) # does not work
print 'call: str(B) expect: {} get:', str(B()) # works

输出:

call: repr(A)  expect: repr(A)  get: repr(A)
call: str(A) expect: {} get: repr(A)
call: str(B) expect: {} get: {}

最佳答案

str(A()) 会调用 __str__,进而调用 dict.__str__()

返回值 repr(A) 的是 dict.__str__()

关于Python 基类方法调用 : unexpected behavior,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/780670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com