Я читал через pprint
модуль Python, и заметил, что его safe_repr
проверяет, является ли "locale" in sys.modules
перед вызовом repr
на str
значение:Почему модуль pprint для Python проверяет `` locale 'в sys.modules`?
def _safe_repr(object, context, maxlevels, level):
typ = type(object)
if typ is str:
if 'locale' not in _sys.modules: # <-------------------------------
return repr(object), True, False
if "'" in object and '"' not in object:
closure = '"'
quotes = {'"': '\\"'}
else:
closure = "'"
quotes = {"'": "\\'"}
qget = quotes.get
sio = _StringIO()
write = sio.write
for char in object:
if char.isalpha():
write(char)
else:
write(qget(char, repr(char)[1:-1]))
return ("%s%s%s" % (closure, sio.getvalue(), closure)), True, False
Источник: https://github.com/python/cpython/blob/master/Lib/pprint.py#L315
В какой сценарий будет локаль повлиять значение repr(some_str)
?
США: 2.75, Франция: 2,75 например? – stark
Почему это было бы актуально, если вход является 'str'? –