95 / 79 / 13
Регистрация: 26.07.2013
Сообщений: 572

Непонятная работа PyCharm

21.04.2022, 10:28. Показов 5462. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
- Здравствуйте Любители Python! Доброго всем здоровья!
Столкнулся с непонятной работой PyCharm.
- Он подсвечивает последнюю скобку какой либо вызываемой функции и, если навести на нее курсор, выводит сообщение:
- "Parameter '...' unfilled". В кавычках приводит какой либо параметр этой функции, например 'self' или 'value'.
Хотя весь код работает ПРЕКРАСНО.
- Подскажите, пожалуйста, что бы это могло означать?
Заранее благодарен!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2022, 10:28
Ответы с готовыми решениями:

Непонятная работа кода
Добрый день!!! код выдает }]}}] а должен }]}}] т.е. идет зацикливание в конце результата 53 содержит в себе 53, но...

Работа с GitHub в PyCharm
Всем доброго времени суток У меня есть несколько проектов в PyCharm, над которыми я работаю. Как настроить систему, чтобы корректно их...

Работа с редактором PyCharm
- Здравствуйте Уважаемые! - Работаю в среде PyCharm. Пытаюсь перенести в редактор PyCharm фрагмент кода из другой среды (например...

11
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
21.04.2022, 11:04
Staut, На мой взгляд, эта проблема не в pycharm, а в том, как вы инициализировали переменные класса, но, с примером кода, было бы понятней.
0
95 / 79 / 13
Регистрация: 26.07.2013
Сообщений: 572
21.04.2022, 11:27  [ТС]
- Спасибо Dax за помощь!
Дело в том, что проект довольно большой. Как вырвать из него пробный пример сразу и не соображу.
Но одна Ваша мысль, что дело может быть в инициализации переменных класса, уже полезна. Есть над чем подумать ...
- Если в 2-х словах, то у меня такая архитектура:
Python
1
2
3
4
5
6
7
8
class MainWindow(Tk)
    def __init__(...)
        self.pict = Pict()  # экземпляр класса Pict
 
# Затем в методах класса MainWindow идут вызовы методов класса Pict
    self.pict.find(...)
    self.pict.cell(...)
# И вот в этих методах find(), cell() и подсвечивается последняя скобка !!!
0
95 / 79 / 13
Регистрация: 26.07.2013
Сообщений: 572
23.04.2022, 08:06  [ТС]
- PyCharm - большущая, серьезная система. Видимо никому не приходилось встречаться с таким ...
Просто как-то обидно, PyCharm предупреждает о чем-то, а я, в силу своей глупости, даже не понимаю - о чем?
- Ладно, будет время, напишу пробное приложение и поэкспериментирую. Может соображу,
когда это сообщение появляется и от чего оно зависит ...
- Спасибо за то, что читали тему!
0
Эксперт PythonЭксперт Java
19520 / 11059 / 2931
Регистрация: 21.10.2017
Сообщений: 23,297
23.04.2022, 20:57
Цитата Сообщение от Staut Посмотреть сообщение
И вот в этих методах find(), cell()
Покажи сигнатуры методов.

Добавлено через 1 минуту
Цитата Сообщение от Staut Посмотреть сообщение
self.pict.find(...)
И вот это без троеточий, реальный вызов тоже покажи
0
95 / 79 / 13
Регистрация: 26.07.2013
Сообщений: 572
24.04.2022, 11:05  [ТС]
- iSmoke, сделал пробное приложение (выдернул из своего проекта его часть):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
from tkinter import *
 
# ======================================================================================================================
# Получил некоторую информацию по моему вопросу (вопросу Темы):
# Мое пробное приложение (в котором я сейчас нахожусь) находится в пробном Модуле (jc_package.test_2.py)
# Подсветка скобки при вызове метода (fun(data)) ВОЗНИКАЕТ из-за ВЫНЕСЕНИЯ метода (fun(data)) класса Pict из Модуля
# класса Pict (jc_package.test_2.py) в отдельный Модуль (jc_package.test_2_0.py)
#
# -------------------------------------------------------------------------
# Содержимое Модуля (jc_package.test_2_0.py):
# def fun(self, data):  # .....
#     print(f'***  Работа - fun()  ***')  # .....
#     print(f'  ***  data: {data}')  # .....
# -------------------------------------------------------------------------
#
# Этот метод (fun(data)) ВОЗВРАЩАЕТСЯ в класс Pict с помощью ИМПОРТА в самом классе Pict:
# from jc_package.test_2_0 import fun  # .....
# Смотрите ниже в классе Pict.
#
# ======================================================================================================================
 
 
class Pict:  # класс - Данные
    # =====================================================================================================
    # ВОТ ЗДЕСЬ - ВОЗВРАЩАЮ ВЫНЕСЕННЫЙ В ОТДЕЛЬНЫЙ Модуль ФУНКЦИЮ fun(data) В РОДНОЙ КЛАСС Pict. См. ниже.
    # =====================================================================================================
    # (.....)
    from jc_package.test_2_0 import fun  # .....
 
    def __init__(self):
        pass
 
 
class MainWindow(Tk):  # класс - Главного Окна
    def __init__(self):
        super(MainWindow, self).__init__()
 
        # (.....)
        self.pict = Pict()  # .....
 
    def run(self):  # запуск Основного Окна
        # -----------------------------------------------------------------
        self.focus_set()  # захватывает Фокус. (ДОБАВИЛ я)
        # -----------------------------------------------------------------
        self.mainloop()
 
    def some_work(self):
        data = 4.0
        # ===================================================================================
        # ВОТ ЗДЕСЬ ПОДСВЕЧИВАЕТСЯ ПОСЛЕДНЯЯ СКОБКА функции - fun() и выводится Сообщение:
        # - "Parameter 'data' unfilled"! Хотя весь код работает ПРЕКРАСНО ! См. ниже.
        # ===================================================================================
        self.pict.fun(data)  # подсветка последней, закрывающей скобки - ')'
 
 
win = MainWindow()  # создание основного Окна
win.run()  # запуск основного Окна
# (.....)
win.some_work()
 
# ======================================================================================================================
#  Может я как-то НЕ ТАК ВЫНОШУ метод (fun(data)) класса Pict В ОТДЕЛЬНЫЙ Модуль (jc_package.test_2_0.py) ???
# Но не выносить методы тоже нельзя. Приложение разрастается, классы распухают!
#
#  Если кто делал что-то подобное (я имею в виду - ВЫНОС Методов из Модуля класса в ОТДЕЛЬНЫЙ Модуль) и знает,
#  как надо это делать ПРАВИЛЬНО - подскажите пожалуйста! ?????
#
# ======================================================================================================================
- Еще раз повторюсь - Если кто делал что-то подобное (я имею в виду - ВЫНОС Методов из Модуля класса в ОТДЕЛЬНЫЙ
Модуль) и знает, как надо это делать ПРАВИЛЬНО - подскажите пожалуйста! ?????
- Спасибо всем!
0
Эксперт PythonЭксперт Java
19520 / 11059 / 2931
Регистрация: 21.10.2017
Сообщений: 23,297
24.04.2022, 11:19
Staut, т.е. ты вынес в отдельный файл метод класса без класса и пытаешься его вызвать в этом же классе?
Мсье знает толк в извращениях.
Цитата Сообщение от Staut Посмотреть сообщение
как надо это делать ПРАВИЛЬНО
Вынести в отдельный файл целиком класс.
0
95 / 79 / 13
Регистрация: 26.07.2013
Сообщений: 572
24.04.2022, 12:23  [ТС]
- iSmokeJC, да, в этом весь смысл!
- Класс Pict стал чрезвычайно большим и разросшимся, поэтому я выношу часть его методов (делающих то-то) в отдельный
Модуль такой-то, а часть его методов (делающих что-то другое) в отдельный Модуль такой-то.
- Возвращаю эти методы из отдельных Модулей в класс Pict, как показал в пробном приложении.
Python
1
2
3
4
5
class Pict:
    from jc_package.test_2_0 import fun  # .....
 
    def __init__(self):
        pass
И все прекрасно работает! Вот только появилась эта подсветка (с выводимым предупреждением) PyCharm.
В общем-то на это можно было просто наплевать ... Но я подумал, что вдруг я нарушаю что-то
фундаментальное (о чем меня предупреждает PyCharm)?
0
Эксперт PythonЭксперт Java
19520 / 11059 / 2931
Регистрация: 21.10.2017
Сообщений: 23,297
24.04.2022, 12:28
Цитата Сообщение от Staut Посмотреть сообщение
я нарушаю что-то фундаментальное
Ну например - лежит у тебя метод в отдельном файле (не в классе).
def foo(self, x)
Что здесь будет self ???

Добавлено через 1 минуту
Т.е. когда метод таки попадет в класс - все работает. А без класса - он хочет два входных аргумента. А передаешь ему один.
0
95 / 79 / 13
Регистрация: 26.07.2013
Сообщений: 572
24.04.2022, 18:25  [ТС]
- iSmokeJC, в том-то и дело, что ВСЕ работает!
У меня десятки методов класса Pict лежат в отдельных Модулях-расширениях. И self работает как ему и надо.
И если бы Ваш метод foo(self, x) лежал у меня в отдельном Модуле, то, будучи возвращен ВНУТРЬ класса Pict,
как я Вам показал (from <modul> import foo) он работал бы абсолютно нормально!
И вызывал бы я его как и положено: - self.pict.foo(5) С одним параметром. Проверено сотни раз.
0
Эксперт PythonЭксперт Java
19520 / 11059 / 2931
Регистрация: 21.10.2017
Сообщений: 23,297
24.04.2022, 19:09
Staut, ну нравиться делать через жопу - делай, никто не запрещает.
Что, если ты захочешь вызвать этот метод не в класс, а просто так? Вот об этом тебе пайчарм и говорит. Это ж додуматься надо - методы класса в отдельный файл...
Если у тебя класс люто разросся - это прямой показатель кривизны архитектуры вцелом. Почитай SOLID. В частности принцип единой ответственности.
0
95 / 79 / 13
Регистрация: 26.07.2013
Сообщений: 572
24.04.2022, 20:18  [ТС]
- Да, знаю iSmokeJC, что будете советовать пристальнее приглядеться к классу Pict.
Разбить его на несколько классов, может быть создать иерархию классов ...
Думал и думаю и над этим. Просто за всю предыдущую работу над проектом было удобно иметь все в одном классе Pict,
вот и все ... Будет время, будут новые идеи.
- Насчет SOLID спасибо. Действительно надо будет еще почитать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.04.2022, 20:18
Помогаю со студенческими работами здесь

Pycharm. Работа с библиотекой wget в Python
Ребят, всем привет! Возник вопрос по работе модуля(библиотеки) wget с использованием среды Pycharm. Есть код на скачку файла: ...

Непонятная работа if
Возникла непонятная проблема с if'ом. Дело в том, что при пошаговом прохождении по программе возникает необъяснимая ситуация, когда условия...

Непонятная работа XP
всем привет проблема такова: ось загружается, но в ней нельзя запустить ни диспетчер, ни проги\игры, тока текстовые файлы.. вирусов...

Непонятная работа с браузерами в 7
Доброго времени суток! Мучаюсь с этой проблемой уже около месяца. Два года семерка работала прекрасно. С месяц назад появились проблемы с...

Непонятная работа подпрограмм
Имею некоторый опыт программирования (без привязки к какому-либо конкретному языку). Но это было давно. А сейчас потребовалось написать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru