Python:有没有办法“秘密”将文本放入字符串中? - python

我已经进行了大约2个月的编程,所以我对Python和一般编程还比较陌生。

我有一个带有包含字符串的字段的类。我试图找到一种表示该字符串的方法,以便可以调用它,但是我不希望它打印该符号。有没有办法让字符串包含在打印时不会显示的文本?这就是我“秘密”的意思。我知道我可以为此做一个单独的领域,并且有更复杂的方法可以解决此问题,但是我想知道我所描述的简单,简单的过程是否可能。

因此,我的使用方式如下:

class A(object):
    def __init__(self, message):
        self.message = message

x = A('\\magical marker\\this is a string.')
y = A("\\other magical marker\\this is a different string")

something = x # I am going to have a variable that could be many different things

if something.message.startswith('\\magical marker\\'):
    print something
else: 
    pass

但是当我打印something时,我希望它像这样出来:

这是我的弦

没有魔术笔。有没有办法做到这一点?

python大神给出的解决方案

您打印something,恰好是A的一个实例。因此,您可以通过定义魔术方法__str__来定义尝试打印对象时发生的情况:

In [1]: class A:
   ...:     def __init__(self, message):
   ...:         self.message = message
   ...:     
   ...:     def __str__(self):
   ...:         return self.message.split('}', 1)[-1]
   ...:     

In [2]: x = A('{marker}my message')

In [3]: print(x)
my message

请注意,打印x.message将打印整个字符串:

In [4]: x.message
Out[4]: '{marker}my message'

更改该名称将非常混乱。