[英]Unable to add single backslash within a string value in dictionary
考慮是否要讓輸出的值等於“ 1 \\ 2”:
>>value='1'+'\\'+'2'
>>print(value)
1\2
這按預期工作。 但是,如果將此值添加到字典中,則會得到雙反斜杠。 有沒有一種方法可以保留字符串而不將其修改為雙反斜杠?
>>print({'key': value})
{'key': '1\\2'}
當您打印字典時,它將打印值的repr
strg = "\\"
print(str(strg)) # \
print(repr(strg)) # '\\'
所以一切都很好。 我現在不知道有什么辦法解決,除非您編寫自己的字符串類並重寫__repr__
(感覺像是過分殺了)...
所以您真的想要實現這一目標。 那就太殺了! :)
class MyStr(str):
def __new__(cls, *args, **kw):
return str.__new__(cls, *args, **kw)
def __repr__(self):
return str(self)
strg = MyStr("\\")
print(str(strg)) # \
print(repr(strg)) # \
這可能會破壞事情(尤其是如果涉及eval
)。
要么:
from collections import UserString
class MyStr(UserString):
def __index__(self, strg):
super().__init__(strg)
def __repr__(self):
return self.data
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.