Найти - Пользователи
Полная версия: Как правильно связать классы с разных файлов
Начало » Python для новичков » Как правильно связать классы с разных файлов
1 2 3
PEHDOM
Novator
А можно пару строк кода?
можете посмотреть вот это http://itnotesblog.ru/note.php?id=10
это не совсем про сигналы и слоты но про взаимодествие ГУИ и кода. Возможно это поможет вам разобраться.
сигналы и слоты для начинабщих: https://pythonworld.ru/gui/pyqt5-eventssignals.html
оно может поначалу казаться какойто магией, но там все достаточно просто.
Вот пример реализации сигналов на чистом пайтоне: https://stackoverflow.com/questions/21101500/custom-pyqtsignal-implementation
Надеюсь оно прояснит хотябы приницпы как оно все работает.
Novator
Вообще интересно… На форуме куча подобных вопросов, но нигде нет внятного ответа на них. Я думал, задача тривиальная, типа в скобках параметри не дописан, или не так импортирую… А оно вон как, все интересуются, но никто не знает

Наверное, отбой… В бесплодных попытках что то сделать сделал так, что не работает и то, что работало до этого
py.user.next
Novator
опять замечание на мои умственные возможности
При чём тут умственные возможности? У тебя знаний нет никаких, а ты взялся программировать.

Вот твой код, из которого вполне ясно, что ты вообще нихера не знаешь, но при этом пытаешься что-то умное изобразить.
Novator
  
class Kod():
    def __init__(self):
        super().__init__()

super() поднимается по иерархии наследования. Какая здесь иерархия наследования? Ты вообще понимаешь, что это такое? Может, у тебя сообщений слишком мало? У тебя не сообщений слишком мало, у тебя мозгов слишком мало.

Novator
С таким количеством сообщений конечно имеете право.
Тут дело не в количестве сообщений, а в том, что ты отнимаешь время у людей - предлагаешь тратить время на твою личную тупость, которая у тебя сложилась, потому что ты ни одной книжки не прочитал и думаешь, что тут никто не поймёт этого.

Novator
На форуме куча подобных вопросов, но нигде нет внятного ответа на них.
А вот это не ответ? А, ты не знаешь как его реализовать, потому что нихера не знаешь. А может за тебя ещё всю программку написать, чтобы тебе комфортно было? А не пошёл бы ты? Иди учись. Дебила кусок.

Бедненькому ушлёпку форум не нравится, не написали ему программку
Novator
py.user.next, я вас оскорблял?
Я ВООБЩЕ К ВАМ НА “ты” ОБРАЩАЛСЯ?
Ветка для новичков или нет? Или я должен в ней писать после сдачи экзаменов информационных технологий?
Заметьте, ни одного оскорбления, так как моего словарного запаса хватает на то, чтобы говорить адекватно, чего не могу сказать о вас.
Форум как форум, я не писал, что не нравится. Нравился до этого момента. Теперь вряд ли я на нем буду, да и невелика потеря. Не одним же этим форумом Python жив
Adios!
py.user.next
Novator
Нравился до этого момента.
Мы знаем, что тебе нравится. Тебе нравится на чужом горбу выезжать, а потом говорить, что ты это всё сам сделал. А если тебе не решают ничего, то ты начинаешь обсирать людей, форумы и так далее и тому подобное. Тебе же все должны.

Novator
Теперь вряд ли я на нем буду, да и невелика потеря.
Да, здесь тебе ничего не светит, потому что про твой величайший ум всё выяснилось на первых сообщениях.
Novator
py.user.next
то ты начинаешь обсирать людей, форумы и так далее и тому подобное
Вы меня явно с кем то спутали. Ну да ладно, сверху рассудят.
Rodegast
> Как наладить эту пресловутую связь в обоих направлениях?
> Чтобы я с одного файла обращался к функциям второго, а со второго - к элементам управления первого.

Правильный ответ никак. Должен соблюдаться принцип единой ответственности (читай про SOLID) т.е. интерфейсная часть у тебя должна быть отделена от логики приложения и логика от интерфейса. По этому тебе нужно сделать отдельный метод в интерфейсе который будет вызываться по нажатию на кнопку btn_Parce и в этом методе уже вызывать функцию open_import_txt. Она у тебя должна просто возвращать какие то данные и после того как они будут получены ты их сможешь вывести пользователю.
Novator
В двух словах, чтобы понапрасну не голословить - так, как я хотел бы, я сделал. Правда, не с помощью этого форума
Другое дело - правильно ли. Для меня главное, чтобы работало, а всякие стандарты-соглашения-договоренности - пускай оставят себе боги программирования.
Мой код дальше моего компа не попадет, так что этим всем я могу и пренебречь
py.user.next
Novator
Мой код дальше моего компа не попадет, так что этим всем я могу и пренебречь
В прошлый раз такой же чудик, как ты, ещё и выкладывал своё умственное достижение. Типа “ребята! вы лохи! я сам всё написал! и без вашего этого форума!”. Естественно, с глупейшими ошибками. Ему даже говорить ничего не стали. Смысл с олигофреном разговаривать, обиженным на весь мир? Ну, дебил, что ещё сказать, на первом же топике закрыл себе доступ на форум. Психологический доступ - когда человек сам не делает что-то, так как ему стыдно там и прочее. Соответственно, когда у него это говно сыпаться начало потом, он уже не смог сюда прийти и спросить “ребята, а вот у меня что-то сломалось тут опять, я это сам всё делал, не подскажете, что у меня тут сломалось и как это починить?”. Дурачьё. Сам себе насрал под нос При этом все остальные виноваты остались у него где-то там в его тупорылой картинке.
PEHDOM
Novator
Я думал, задача тривиальная, типа в скобках параметри не дописан, или не так импортирую… А оно вон как, все интересуются, но никто не знает
Да нет, все знают, задача достаточно тривиальная, тлько решается она не так как вы этого хотите. Нет волшебной комманы import sdelat_vse_zaebys .Нужно правильно проєктировать классы/функции/процедуры, соблюдать принципы програмирования и тд..
Вобщем не заморачивайтесь, пишите пока все в одном файле, через какоето время понимание как правильно связать классы с разных файлов должно у вас появится(ну по крайней мере я на это надеюсь). Потому что пока во это:

 class Kod():
	  def __init__(self):
		super().__init__()
.....
 from kod import Kod
....
self.btn_Parce.clicked.connect(Kod.open_import_txt)
....
не лезет ни в какие ворота.Почему, вам уже обьяснили, возможно несколько прямолинейно, но по сути верно. Очевидно что вы не понимаете банальной разницы между классом и экземпляром класса. Разберитесь для начала с ООП чутка. Абстракция, полиморфизм, наследование, инкапсуляция, делегация, агрегация, композиция, принцип единственной обязанности, принцип открытости/закрытости, принцип подстановки, принцип разделения интерфейсов, принцип инверсии зависимостей. Все это далеко не пустые слова, котороые придумали какието кабинетные крысы далекие от програмирования ради защиты докторской диссертации.

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB