2016-03-16 10 views
0

Я недавно работал с скриптом python, который использовал файл dll, который был первоначально написан на C++. Сценарий питона был этот импорт строка в верхней части этого:Что делает #using dll_file в python

from mycustomdll import * 

Однако всякий раз, когда я запустил скрипт, жаловался, не будучи в состоянии найти пакет mycustomdll. Я посмотрел в другом скрипте, который также использовал DLL и увидел следующую строку вверху.

#using mycustomdll 

Я добавил эту строку в начало первого файла, а скрипт python работал без проблем. Коллега предположил, что строка #using действует как декларация пространства имен. Еще одно возможное объяснение заключается в том, что он ведет себя как своего рода предпроцессорная директива для интерпретатора python.

Что именно делает # использование, чтобы выставить файл dll на python для импорта?

вопрос: есть ли у python специальные ключевые слова, такие как переопределение стандартного поведения # в качестве комментария? Если да, то каковы они (есть ли список где-нибудь, где я могу ознакомиться?)

Мы используем настраиваемое подмножество предварительно скомпилированных пакетов IronPython для нашей среды сборки, некоторые из которых, возможно, были написаны в доме, t упускать возможность, что это не стандартное поведение.

+0

Я никогда не слышал об этом раньше. Единственные комментарии времени имеют смысл в Python находится в самом верху файла, где первые две строки могут иметь значение. Первой строкой может быть строка «shebang», указывающая, чтобы выполняемый интерпретатор (например, '#!/Usr/bin/env python3'). Это в основном используется внешними инструментами, чтобы найти подходящего интерпретатора для использования для скрипта, а также для запуска программы py.exe для Windows. Первая или вторая строка также может указывать кодировку исходного файла, как описано в [PEP 263] (https://www.python.org/dev/peps/pep-0263/). В противном случае комментарий - это просто комментарий, я думаю. – Blckknght

+0

@Blckknght Вот что я тоже подумал! Но я не могу спорить с тем, что происходит. Он был сломан, я добавил эту строку, и она больше не сломана. Как я уже сказал, это может быть что-то в этом обычном предварительно скомпилированном интерпретаторе IronPython, который используется здесь, и в этом случае мне, возможно, придется попытаться найти кого-нибудь, кого бы это связало и спросить. Спасибо за эту ссылку – Tuffwer

+0

Если бы это было стандартно в IronPython, я бы ожидал, что он будет документирован здесь; https://ironpython-test.readthedocs.org/en/latest/reference/lexical_analysis.html, но это не так. – cdarke

ответ

1

#using - всего лишь комментарий. Даже в IronPython.

+0

Да, это должно быть определено где-то в нашем материале, тогда, спасибо! – Tuffwer