Я видел "Почему не join() автоматически конвертирует свои аргументы в строки?" и принятый ответ заставлял меня думать: поскольку
Явный лучше, чем неявный.
и
Ошибки никогда не должны проходить молча.
почему str.format()
игнорирует дополнительные/неиспользуемые (иногда случайно переданные) аргументы? Для меня это выглядит как ошибка, которая передается молча, и она явно не является явной:
>>> 'abc'.format(21, 3, 'abc', object(), x=5, y=[1, 2, 3])
'abc'
Это действительно приводит моего друга к проблеме с os.makedirs(path, exist_ok=True)
, все еще вызывающей ошибку, хотя документы для os.makedirs()
говорят, что exist_ok=True
не приведет к ошибке, даже если path
уже существует.
Оказалось, что у него просто была длинная строка с вложенными вызовами функций, а exist_ok
была передана вложенному вызову .format()
вместо os.makedirs()
.