С MarkupSafe , который используется в Jinja и Flask, при добавлении объекта str
и объекта Markup
возвращается объект Markup
:
>>> from flask import Markup
>>> 'foo' + Markup('bar')
Markup('foobar')
Но еслиЯ вызываю str.__add__
напрямую, он возвращает str
объект:
>>> 'foo'.__add__(Markup('bar'))
'foobar'
Так что кажется, что добавление str
и Markup
с +
вызывает Markup.__add__
независимо от порядкаоперанды. Как это возможно?