Brython中的super().__str__()应该返回不同的东西吗?

我在使用Brython和继承的时候遇到了一个奇怪的情况,就是用 方法。 这是我使用 蟒蛇游戏机:

>>> class A(object):
...     def __str__(self):
...         return "A __str__ output."
... 
>>> class B(A):
...     def __str__(self):
...         return super().__str__() + " (from B)"
... 
>>> x = A()
>>> x
<__main__.A object>
>>> y = B()
>>> y
<__main__.B object>
>>> str(y)
"<super: <class 'B'>, <B object>> (from B)"

我还以为最后一行会回来呢。

"A __str__ output. (from B)"

我是不是做错了什么?

解决方案:

同样的代码在CPython中也能正常工作,所以这可能是Brython的一个错误。

Python 3.7.6 (default, Dec 30 2019, 19:38:26)
[Clang 11.0.0 (clang-1100.0.33.16)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> class A(object):
...     def __str__(self):
...         return "A __str__ output."
...
>>> class B(A):
...     def __str__(self):
...         return super().__str__() + " (from B)"
...
>>> x = A()
>>> x
<__main__.A object at 0x1048de590>
>>> y = B()
>>> y
<__main__.B object at 0x1048de790>
>>> str(y)
'A __str__ output. (from B)'
>>>

给TA打赏
共{{data.count}}人
人已打赏
未分类

在SSR中不存在的翻译键,没有语言回退。

2022-9-8 0:44:20

未分类

使用Rust中的`tokio-rustls`从TlsStream<TcpStream>读取。

2022-9-8 0:44:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索