$ python3 -t -c 'print("hello world")'
hello world
Что делает -t
? В python3 --help
об этом не упоминается.
Обычно неизвестные параметры вызывают ненулевой код выхода, например
$ python3 -r
Unknown option: -r
usage: python3 [option] ... [-c cmd | -m mod | file | -] [arg] ...
Try `python -h' for more information.
Опция -t
в python3
— это функция Python 2.x, которая предупреждала о непоследовательном использовании табуляции и пробелов в исходном коде. Однако эта опция была удалена в Python 3.x.
Поэтому, когда вы запускаете python3 -t -c 'print("hello world")'
, Python 3 просто игнорирует опцию -t
и выполняет код как обычно.
Чтобы уточнить, удалено в том смысле, что версия с ошибкой (а не с предупреждением) -tt
стала поведением по умолчанию.
Если на самом деле он ничего не делает, почему его не удалили, когда удалили другие параметры, такие как -U
в Python 3.0?
Параметр -t
мог быть оставлен для обратной совместимости или потому, что он не конфликтовал с какими-либо новыми функциями и не вызывал каких-либо проблем.
@nosteponsnek: Это всего лишь предположение, но -U
уже был «опцией, которую не следует использовать», а -tt
была распространенной хорошей идеей, поэтому, возможно, значение обратной совместимости было оценено как другое.
Я предполагаю, что это остаток от Python 2. Сейчас не могу проверить, работает то же самое.