簡體   English   中英

無法在字典的字符串值內添加單個反斜杠

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM