创建类并在不使用引号的情况下表示它



我需要表示不带前导和结束引号的数据类型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)
'+'

相关内容

  • 没有找到相关文章

最新更新