фон: Для тех, кто не знаком с ним, Sublime Text (и TextMate) обеспечивает подсветку синтаксиса и другие функции с помощью областей, которые определяются файлы определений .tmLanguage
языка, в основном кучу регулярные выражения для идентификации различных конструкций в данном языке, такие как определения функций, различные типы строк, зарезервированные слова и т.д.Встроенные магические имена переменных/атрибутов
Я хранитель Python Improved пакета (доступен через Package Control если вы заинтересованы), что цели для лучшего определения языка для Python. Вы можете прочитать об этом в GitHub, если хотите, но одна из ключевых особенностей заключается в том, что он фактически поддерживается, в отличие от многих из Sublime-языков, которые не были изменены или обновлены годами.
Вопрос: Я сосредотачивался в последнее время на двойных подчеркнуло __magic__
вещей, и после нахождения this excellent treatise по Рейфу Kettler на магических функциях, я был в состоянии расширить эту часть определения языка совсем немного. Тем не менее, мне было немного меньше удачи в поиске хорошего списка встроенных имен магических переменных или магических атрибутов, таких как __class__
или __doc__
. Я прошел через раздел документов Data Model, но он оставляет желать лучшего в моих целях и, похоже, сосредоточен главным образом на именах магических методов.
Так что мой вопрос: что должно быть включено в область support.variable.magic.python
? Это его определение до сих пор:
\b__(all|bases|class|debug|dict|doc|file|members|metaclass|methods|module|name|slots|weakref)__\b
Одна из причин, почему я начал этот проект, чтобы научить себя больше о Python, и я определенно был успех до сих пор, но я вроде застрял в этой точке ,
Для того, чтобы быть ясным, я не ищу любимый ресурс вне сайта (хотя, если у вас есть удобная ссылка, я был бы признателен), и я не пытаюсь начать утомленное обсуждение. Все, что я пытаюсь понять, это если этот список выглядит разумным как есть, или если есть какие-то вопиющие ошибки. Если вы do хотите быть самоуверенным, open an issue, и я был бы более чем счастлив обсудить.
Спасибо!
Что относительно операторов? '__eq __, __ lt __ и т. д. общие сравнения' __cmp__', '__str__' среди других ... –
@JoranBeasley они определены в' support.function.magic.python' - все от этих до '__delete__' до' __missing__' до '__setstate__' - это довольно длинный список. – MattDMo
Возможно https://docs.python.org/3/library/inspect.html#types-and-members помогает немного – Claude