Chciałem tylko podkreślić to, co @metatoaster powiedział w komentarzu powyżej, ponieważ brakowało mi go najpierw.
Użycie repr (string) spowoduje dodanie pojedynczych cudzysłowów, a następnie podwójne cudzysłowy poza tym, a następnie pojedyncze cudzysłowy poza tymi z wewnętrznymi pojedynczymi apostrofami, a następnie na inne znaki ucieczki.
Korzystanie repr(), jako wbudowany, jest bardziej bezpośredni, chyba że istnieją inne konflikty ..
s = 'strOrVar'
print s, repr(s), repr(repr(s)), ' ', repr(repr(repr(s))), repr(repr(repr(repr(s))))
# prints: strOrVar 'strOrVar' "'strOrVar'" '"\'strOrVar\'"' '\'"\\\'strOrVar\\\'"\''
Stan docs jego stan zasadzie repr(), czyli reprezentacja jest odwrotnością eval()
„Dla wielu rodzajów, ta funkcja jest próbą powrotu ciąg dałyby obiekt o takiej samej wartości, gdy przechodzi do eval() ..”
Kopie wzorca będą krótsze, ale w języku Python 3+ mają wartość removed. Co ciekawe, StackOverflow wykorzystuje backquotes do określenia rozpiętości kodu, zamiast podświetlać blok kodu i klikając przycisk kodu - ma jednak pewne ciekawe zachowanie.
Jaki jest kontekst (powody/dlaczego) do robienia tego? Co jeśli twój ciąg zawiera cytaty? W każdym razie spróbuj 's1 .__ repr __()' z różnymi ciągami i sprawdź, czy to zachowanie pasuje do wymaganego użycia. – metatoaster
@metatoaster Zasadniczo muszę łączyć wiele łańcuchów '+ ', niektóre z nich wymagają pojedynczych cudzysłowów, a niektóre nie, aby zaoszczędzić przestrzeń liniową, wymyśliłem powyższe rozwiązanie. – pyCthon
Co jeśli masz ciąg dopasowujący Twoje pojedyncze kryteria cytowania, ale ma też pojedynczy cytat (taki jak 'that's'), użycie twojej metody spowoduje" to ". Czy jest to zamierzone/dopuszczalne dla twojego systemu? Zalecane jest również użycie 'str.join' zamiast listy łańcuchów zamiast" + "do dodawania pojedynczych fragmentów napisów ze względu na wydajność. – metatoaster