За исключением файлов __init__.py
, имеют ли главные и конечные двойные символы подчеркивания какое-либо значение в имени файла? Например, __model__.py
каким-либо образом более значительным, чем model.py
?Значение двойных символов подчеркивания в имени файла Python
ответ
Двойные подчеркивания в именах файлов, отличных от __init__.py
и __main__.py
, не имеют никакого значения для самого Python, но рамки могут использовать их для указания/идентификации различных вещей.
Ahhh! Я вижу, вы обнаружили магические методы.
Двойные подчеркивания называются «dunder», и они вызывают специальные методы, которые могут иметь некоторые действительно опрятные эффекты для объектов. Они не меняют значения, но они довольно изумительные вуду и хороший инструмент для вашего пояса.
Вот ссылка многих ссылок, здесь я узнал все о магических методах. http://pythonconquerstheuniverse.wordpress.com/2012/03/09/pythons-magic-methods/
__init__
- волшебный метод для объявления вещей при инициализации объекта. Ему предшествует только __new__
.
Наиболее полезные из этих методов, которые я использовал, - это метод __dict__
. Метод __dict__
делает его таким, чтобы все атрибуты класса превращались в пары значений ключа, которые затем могут использоваться как словарь. Хотя я не думаю, что использовать его в качестве имени файла было бы полезно.
вот пример:
class Thing(object):
def __init__(self): ##Init here is a magic method that determines what haps first
self.tint = "black"
self.color = "red"
self.taste = "tangy"
thing = Thing()
dictionary_from_class = {}
for key in thing.__dict__.keys(): ##returns all key values. here: "tint, color, taste"
dictionary_from_class[key] = thing.__dict__[key]
Пожар на Idle в питоне, и попробовать это. Удачи вам в практике Voodoo Python!
EDITED
К сожалению, я очень быстро прочитал ваш вопрос, позвольте мне говорить об этом, потому что я, возможно, не покрыли его в своем ответе: Если имя файла __init__.py
, он делает нечто подобное, что я упоминание перед тем. Он вызывает инициализацию, и python будет делать это, как только папка будет достигнута для использования модуля. То есть, если вы читаете этот файл, потому что он был вызван, например, ссылаясь на папку модулей, и в этом случае вам нужен файл __init__.py
, чтобы он мог распознать его внутри папки. Вы можете использовать любой из магических методов в качестве имен, чтобы получить аналогичную функциональность при использовании.
Надеюсь, что разъяснение было полезным.
ДжозефОн не спрашивал о специальных методах, он спрашивал конкретно о двойных подчеркиваниях в именах файлов. – DSM
Это было о * именах файлов * не имена в файлах! :-p Спасибо за эту ссылку, хотя это похоже на хорошее чтение. – Matty
Извините, я взорвался.Я сделал быстрое редактирование, надеюсь, что эти ссылки полезны для вас! –
- 1. Избавьтесь от символов подчеркивания в имени файла для загружаемого файла
- 2. Использование переменной в имени файла с подчеркивания
- 3. Поиск символов до последнего подчеркивания
- 4. Что такое префикс подчеркивания для имени файла python?
- 5. Перемещение символов в имени файла
- 6. Удалить определенный шаблон символов в имени файла в Python
- 7. В Python как белый список определенных символов в имени файла?
- 8. python win32 длина имени файла
- 9. Пакетный скрипт для удаления частей имени файла в переменных символов
- 10. Как __mro__ отличается от других двойных имен подчеркивания?
- 11. % символов неожиданно добавлены в середине имени файла или имени папки
- 12. Значение подчеркивания
- 13. Значение cookie в двойных кавычках
- 14. C# Поиск специальных символов в имени файла
- 15. Удаление 10 символов имени файла в Linux
- 16. подсчет символов в имени файла Windows-пакет
- 17. BASH - любая замена символов в имени файла
- 18. Совместить несколько необязательных символов в имени файла
- 19. удаление неалфавитных символов в имени файла
- 20. Использование массива символов в качестве имени файла?
- 21. XQuery исключить некоторые файлы от подчеркивания в имени файла
- 22. Regex - Как заменить период в имени файла на символ подчеркивания
- 23. Matching части до и после подчеркивания в имени файла
- 24. CakePHP: просмотр, содержащий символ подчеркивания в имени файла, не работает
- 25. Изменение имени файла Python
- 26. Python Изменение имени файла
- 27. Индекс подчеркивания в Python
- 28. Замена символов подчеркивания пробелами PHP
- 29. Unix сортировка обработки символов подчеркивания
- 30. Обработка недопустимых символов из имени файла в unix
возможно дубликат [Смысл одно- и двойного подчеркивания перед именем объекта в Python] (http://stackoverflow.com/questions/1301346/the-meaning-of- a-single-and-a-double-underscore-before-an-object-name-in-python) –
Не дубликат, потому что этот вопрос относится к фактическому имени файла, а не к именам в файле. – Matty
Возможный дубликат [Что такое '__init__'.py for?] (Http://stackoverflow.com/q/448271/1079354) – Makoto