Происхождение использования # в качестве комментария в Python? - PullRequest
4 голосов
/ 18 февраля 2010

Так что мне просто нравился этот чувственный взрыв чувак! Я просматривал исходный код Python и читал некоторые комментарии, а затем снова просмотрел комментарии. Когда я наткнулся на это:

#!/usr/bin/env python
# A regular comment

Что заставило меня задуматься, было выбрано # в качестве символа для начала комментария, потому что это позволило бы запускать программу python в оболочке, например:

./test.py

и затем игнорироваться, когда работает интерпретатор python?

Ответы [ 4 ]

13 голосов
/ 18 февраля 2010

Да.

Использование # для начала комментария - это соглашение, за которым следуют все основные интерпретируемые языки, предназначенные для работы в системах POSIX (т.е. не в Windows).

Это также хорошо согласуется сДело в том, что последовательность "#!"в начале файл распознается ОС как «запустить команду в этой строке», когда вы пытаетесь запустить сам файл сценария.

Но в основном это общепринятое соглашение.Если бы python не использовал # для начала комментария, это могло бы смутить многих людей.

EDIT

Использование "#" в качествемаркер комментария явно предшествует "#!" обозначение хэш-взрыва ."#!"был представлен Деннисом Ритчи между Unix 7 и 8, в то время как языки, которые поддерживают # как маркер комментария, существовали ранее.Например, оболочка Bourne уже использовалась по умолчанию при выпуске Unix версии 7.

Поэтому соглашение об использовании «#» в качестве маркера комментария, вероятно, повлияло на выбор «#!»в качестве маркера командной строки, а не наоборот.

6 голосов
/ 18 февраля 2010

Использование # для комментариев происходило до того, как появился Python. Соглашение о шебанге (#!/usr/bin/env python) почти столько же лет, сколько и сама UNIX. Эти два взаимосвязаны для многих интерпретируемых языков (или оболочки).

Можно также изучить историю Шебанга !

1 голос
/ 18 февраля 2010

«Все оставшиеся строки после символа X» - это, очевидно, самый удобный способ делать комментарии, если у вас есть доступный X (C ++ должен был использовать два символа, //, для того, чтобы предложить альтернативу C неуклюжий PL / I-вдохновленный '/ ' ... ' /' "скобки").

Почти все печатные символы Ascii могут использоваться для других целей в Python - если выбор между # и ?, причем первый из них уже знаком по его использованию в sh, bash, tcl, perl, awk ... - это не очень сложный выбор, не так ли? Удобство hashbang - просто парик.

0 голосов
/ 18 февраля 2010

Очень хорошо, вы правы.

Это известно как шебанг или хэш-бэнг.Я полагаю, что язык сценариев может использовать любой понравившийся символ комментария и разрешить #!в первой строке в качестве комментария, но кажется проще просто сделать # символом комментария ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...