Skip to main content
 首页 » 编程设计

python之无法在字典中的字符串值中添加单个反斜杠

2025年05月04日36daizhj

考虑我是否希望值的输出为“1\2”:

>>value='1'+'\\'+'2' 
>>print(value) 
1\2 

这按预期工作。但是,如果我将这个值添加到字典中,我会得到双反斜杠。有没有一种方法可以保留字符串而不修改为双反斜杠?

>>print({'key': value}) 
{'key': '1\\2'} 

请您参考如下方法:

当您打印字典时,它会打印 repr的值(value)

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