我需要表示不带前导和结束引号的数据类型PS
(使"+"变成+(
我试图覆盖repr,但不知道如何正确执行。我的问题:
class E: # Expression-Class
pass
class AE(E): # Arithmetic_Expression-Class
pass
class BO(AE): # Binary_Operation-Class
pass
class P(BO): # Plus-Class
operator = PS()
class PS: # Plus_Sign-Class
def __repr__(self):
return + # <- obviously raises an error
# how to return '+' string without the single quotes (so: '+' -> +)?
__repr__
必须返回一个字符串(str
(。如果您返回'+'
,则返回的字符串中只有一个加号。如果您返回了print()
,则其周围将没有单引号。您看到单引号的唯一原因是,无论打印什么,都不是打印值,而是打印字符串+
的表示。
>>> class PS:
... def __repr__(self):
... return '+'
...
>>> a = PS()
>>> a
+
>>> print(a)
+
>>> repr(a)
'+'