我已经进行了大约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'
更改该名称将非常混乱。