|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596
|
||||||
Неудобство23.05.2020, 14:59. Показов 2711. Ответов 15
Метки нет (Все метки)
- Здравствуйте всем!
Я не совсем уверен, что это вопрос по PyCharm. Может и по языку Python. Суть вопроса: - Я создал дополнительный модуль - Python_My_Glob и вынес в него класс - Glob. Там же создаю единственный экземпляр этого класса - glob. - В основной модуль - Python_My я импортирую экземпляр (glob) выражением:
Но в импортирующем выражении (1) PyCharm подсвечивает все идентификаторы (Python_My_Glob и glob) - КРАСНЫМ ! Оно бы все ничего, работает да и ладно. Но как-то раздражает. - Пожалуйста объясните, что НЕ ТАК ? Заранее благодарен !
0
|
||||||
| 23.05.2020, 14:59 | |
|
Ответы с готовыми решениями:
15
Неудобство с кодингом Неудобство в Телеграме Неудобство с системным звуком |
|
Автоматизируй это!
|
|
| 23.05.2020, 15:04 | |
|
Staut, создал ли ты пакет(ы)? Что именно пишет пичарм принаведении на эти красные подсветки? Почему модуль называется не по питоновски? зачем назвал что-то glob ведь есть питоновская либа такая?
1
|
|
|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596
|
|
| 23.05.2020, 17:26 [ТС] | |
|
- Спасибо Welemir1 за участие!
- Я только-только начинаю пользоваться Питоном. А здесь столько вопросов. - Что такое Пакет я - не знаю. - При наведении курсора пишет - "Unresolved reference 'Python_My_Glob'". - Как называть Модули по Питоновски? - Если можно Welemir1 самый короткий примерчик. Буду ОЧЕНЬ БЛАГОДАРЕН! Это урок на всю дальнейшую работу. Добавлено через 1 час 41 минуту - Спасибо, теперь знаю - КУДА КОПАТЬ ...
0
|
|
|
Автоматизируй это!
|
|||
| 23.05.2020, 18:23 | |||
|
Совет: не называй свои библиотеки, переменные, классы как уже имеющиеся либы или встроенные функции, самому меньше будет мороки потом и странных ошибок. То есть list, dict, json, csv, max - плохие названия для собственных объектов
1
|
|||
|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596
|
|
| 24.05.2020, 21:10 [ТС] | |
|
- Еще раз спасибо Welemir1. Теперь хоть что-то начинаю понимать.
Переделал свой проект, как это разъяснено в Вашем ролике. Правда проблему это НЕ РЕШИЛО. Потом, вообще, полностью повторил все, что делалось в ролике (создал "правильный" Проект). И в этом "правильном" Проекте попытался из одного Модуля вызвать Функцию другого Модуля. Все равно в выражениях импорта идентификаторы подчеркиваются красным. А при наведении на них курсора выводится сообщение - "Unresolved reference '.....'". Видимо причина глубже ...
0
|
|
|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596
|
|
| 25.05.2020, 14:55 [ТС] | |
|
- Welemir1, вот Проект, который я как будто ПОВТОРИЛ с Вашего ролика.
Я добавил туда только свой Модуль - main.py И из него вызвал простейшую Функцию, которую написал в имевшемся в Проекте Модуле - str_formatting.py.
0
|
|
|
Автоматизируй это!
|
|||||||||||
| 25.05.2020, 15:06 | |||||||||||
Сообщение было отмечено Staut как решение
Решение
Staut, вот теперь увидел. Пакеты то мы для чего создаем? чтобы писать импорты или абсолютные или релатив (как пути в ОС)
напиши вот так
а потом ты можешь поправить
и приняв твою конструктивную критику я запишу видео по импортам! Спасибо
1
|
|||||||||||
|
Модератор
|
|
| 25.05.2020, 15:11 | |
|
Welemir1, Поддержу ответ сие господина. Хотел накидать пример, но если ты не прочтешь литературу, особо и не поймешь в чем дело. Если в кратце: если ты пишешь модуль, то все импорты внутри совершаются относительно расположения данного файла, одна точка это означает что файл находится в этой же директории данного файла, две точки - в родительской. Ты не сможешь запустить их на прямую, будет ругаться на относительный импорт, а вот если импортировать вне пакета то все будет отлично работать. Отсюда нужно сделать вывод, что твой скрипт main.py не может находится внутри пакета этого модуля.
1
|
|
|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596
|
|
| 25.05.2020, 15:14 [ТС] | |
|
- Огромное СПАСИБО Welemir1! Все работает КАК НАДО!
Теперь буду далее читать и ДУМАТЬ. - Еще раз СПАСИБО!
1
|
|
|
Модератор
|
||||||
| 25.05.2020, 15:14 | ||||||
|
-Module
---->__init__.py ---->str_formatter.py -main.py
1
|
||||||
| 25.05.2020, 16:49 | |||||||||||||||||
Кстати переменные, принадлежащие одному классу или одному экземпляру класса, так же являются квалифицированными именами. Здесь так же можно говорить о пакете переменных для конкретного экземпляра класса. Поэтому используя ООП, Вы также можете исключить конфликт имен внутри одного модуля. Если Вы в импортируемом модуле используете тот же класс, что и в основном и экземпляр класса с тем же именем, то конфликт все равно будет, если Вы используете импортирование From ... . Гарантировать отсутствие конфликта и в этом случае может только импорт с синтаксисом import ... Тогда имя переменной будет выглядеть так <имя модуля>.<имя экземпляра класса>.<имя атрибута> . Добавлено через 1 час 0 минут Но в любом случае, нельзя называть переменные используя ключевые слова питона. Добавлено через 7 минут И еще, если только Вы не пишете какой то большой проект, где Вам просто необходимо разносить программу по нескольким директориям, то помещайте все модули одной программы в одном каталоге. Если Вы начинающий, то будет меньше мороки. Другое дело, если Вы как раз изучаете импорт модулей из разных каталогов. В этом случае, я могу только посоветовать размещайте все каталоги , где находятся импортируемые модули ниже основного каталога, в котором находится запускающий сценарий. То есть каталоги с модулями должны быть подкаталогами каталога с основной (запускаемой) программой.
1
|
|||||||||||||||||
|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596
|
|
| 26.05.2020, 09:29 [ТС] | |
|
- Спасибо ребята DmFat, Viktorrus! Появилось много вариантов.
Буду пробовать разные. Искать наиболее удобный для себя. - Немного запутался ... Не дадите ли примерное определение, что такое - Модуль и что такое - Пакет? И для чего они в ОСНОВНОМ используются?
0
|
|
|
Автоматизируй это!
|
||
| 26.05.2020, 10:00 | ||
|
пакет это папка с модулями используется это все для иерархии и порядка, чтобы не валить все в кучу, сам представь если у тебя будет 25 модулей просто лежать. И совсем другое дело когда есть пакет net, пакет string и т.п. в которых есть модули которые работают с указанными сущностями. Вот https://youtu.be/D8WSSiTbLl0
1
|
||
|
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596
|
|
| 26.05.2020, 10:17 [ТС] | |
|
- Еще раз спасибо Welemir1. Я примерно так и представлял. Просто кое-какие мысли меня сбили ...
Буду больше и по-всякому пользоваться и все встанет на свои места.
0
|
|
| 26.05.2020, 20:18 | |
|
Staut, Как во многих случаях одно и то же слово, в зависимости от контекста, может иметь разный смысл. То, о чем говоритWelemir1, Это один смысл слова "пакет", а точнее "пакет программ".
Но внутри питона существует другой смысл слова "пакет", а точнее "пакет переменных". О первом варианте смысла слова "пакет" Лутц говорит Лутц М. Изучаем Python (4-е издание, 2011) стр.641: Кликните здесь для просмотра всего текста
"Помимо возможности импортировать имя модуля существует возможность импортировать имена каталогов. Каталог на языке Python называется пакетом, поэтому такая операция импортирования называется импортированием пакетов. В действительности, операция импортирования пакета превращает имя каталога в еще одну разновидность пространства имен, в котором атрибутам соответствуют подкаталоги и файлы модулей, находящиеся в этих каталогах. Это немного усложненная особенность, но иерархическая структура, которую она создает, оказывается удобной для организации файлов в крупных системах и в большинстве случаев упрощает настройку пути поиска модулей. Как мы увидим дальше, операция импортирования пакетов иногда оказывается просто необходимой, чтобы избежать неоднозначности при наличии нескольких файлов программ с одинаковыми именами, установленных на одном компьютере. В этой главе мы также рассмотрим недавно появившийся в языке Python механизм импортирования относительно пакета и его синтаксис, так как оно имеет отношение только к программному коду в пакетах. Как мы увидим далее, этот механизм изменяет путь поиска и расширяет инструкцию from, позволяя с ее помощью выполнять импортирование имен из пакетов."
Лутц М. Изучаем Python (4-е издание, 2011) стр.97,99: Кликните здесь для просмотра всего текста
"Модуль – это, главным образом, всего лишь пакет имен переменных, известный как пространство имен. Имена внутри этого пакета называются атрибутами, то есть атрибут – это имя переменной, которая связана с определенным объектом (таким как модуль). "
"Вообще программы на языке Python состоят из множества файлов модулей, связанных между собой инструкциями import. Каждый файл модуля – это самостоятельный пакет переменных, или пространство имен. Один модуль не сможет увидеть переменные, определенные в другом модуле, если явно не импортирует его. Модули позволяют уменьшить вероятность конфликтов имен в программном коде – так как каждый файл является самостоятельным пространством имен, имена в одном файле не вступают в конфликт с именами в другом файле, даже если они одинаковые." Поэтому нужно понимать, что Welemir1, говорил Вам об одном "пакете", а я о другом, и они имеют разный смысл и разное назначение в питоне.
1
|
|
| 26.05.2020, 20:18 | |
|
Помогаю со студенческими работами здесь
16
Неудобство в drag'n'drop Неудобство интерфейса Windows 10 Sublime 3 - неудобство с автоподстановкой Неудобство при открытии флеш открыва Большое количество библиотек для приложения создают неудобство для распространения программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|