Найти - Пользователи
Полная версия: Классы
Начало » Python для новичков » Классы
1 2 3 4
AD0DE412
ну там и задача не простая,
тут похоже приложение для android или ios
Kasta_neda
В приложении много классов, каждый класс это или экран или отдельно лайоут или совместно.
И надо из одного в другой передавать данные textinput и label и button.
Если я передаю self здесь
 TestNavigationDrawer.zip_out( dat, index)
то он принадлежит второму классу, и в первом классе, этот метод тогда юзает ссылку на второй класс, из за чего краш.
Может я плохо объяснил, из второго класса я вызываю метод первого класса, и в самом методе уже, есть ссылки на принадлежность к первому классу, self.sklad_list например, вот тут не пойму как self на первый класс указать, потому что метод получается статический, а если я self использую, то при вызове из второго класса TestNavigationDrawer.zip_out(self, dat, index) , self вроде как принадлежность имеет к второму классу.
PEHDOM
Kasta_neda ну а чего вы хотели? у вас же
 def zip_out(  dat, *args, **kwargs):
   skl = self.sklad_list...
так делать низзя.. у вас в таком виде в dat передаеться инстанс класса, а self вообще непонятно что, вот оно и крашиться..
вам уже писали поменяйте на
  def zip_out(self, dat, *args, **kwargs):
тогда все заработает как должно.
Или поставте декоратор @staticmethod, но тогда внутри метода не должно быть никаких self-ов что явно не ваш случай.
Kasta_neda
PEHDOM
@staticmethod
да, я уже так и сделал, от self пришлось отказаться

@classmethod пробовал, не знаю правильно ли

пока сделал файл в него записал словарь и юзаю по мере необходимости, а ссылку на словарь пока юзаю только где получается, хотя думаю удалить ее, что б память не нагружать, все равно словарь динамический
PEHDOM
Kasta_neda
@classmethod пробовал, не знаю правильно ли
хмм, скорее всего нет. В @classmethod первым аргументом неявным образом передаётся класс.
 @classmethod
        def method(cls, *arg):
если вы просто поставили декоратор перед методом то в dat будет предан класс TestNavigationDrawer
Kasta_neda
PEHDOM
если вы просто поставили декоратор перед методом то в dat будет предан класс TestNavigationDrawer
в методе self поставил, он принадлежит теперь классу TestNavigationDrawer, но все равно не видит аргументы, видимо пока не в поле видимости почему то.
стало <class ‘program.TestNavigationDrawer’>
обычно <program.TestNavigationDrawer object at 0x0000000008E9B590>
PEHDOM
Kasta_neda
но все равно не видит аргументы, видимо пока не в поле видимости почему то.
хмм, долно все видеть, можете выложить минимально рабочий код чтиобы посмотреть на проблему?
FishHook
Kasta_neda
Что за страдания? Сюда сунул переменную, потом туда сунул, куда бы её еще сунуть… Программирование методом тыка какое-то.
Декомпозируйте задачу, назначте ответственности, нарисуйте диаграмму классов.
Kasta_neda
PEHDOM
хмм, долно все видеть, можете выложить минимально рабочий код чтиобы посмотреть на проблему?
Код на Kivy имеет много ньюансов, и первое это пароль на вход в сервис. Минимально это не получится наверное.
Kasta_neda
FishHook
Сюда сунул переменную, потом туда сунул, куда бы её еще сунуть
переменная в области видимости первого класса, к ней обращаюсь, но да классов много, вроде не пихаю ее, наоборот к ней возвращаюсь иногда.
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