Уведомления

Группа в Telegram: @pythonsu

#1 Май 25, 2020 15:49:13

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Классы

ну там и задача не простая,
тут похоже приложение для android или ios



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Май 25, 2020 15:50:08)

Офлайн

#2 Май 25, 2020 16:15:09

Kasta_neda
Зарегистрирован: 2014-06-08
Сообщения: 210
Репутация: +  6  -
Профиль   Отправить e-mail  

Классы

В приложении много классов, каждый класс это или экран или отдельно лайоут или совместно.
И надо из одного в другой передавать данные textinput и label и button.
Если я передаю self здесь

 TestNavigationDrawer.zip_out( dat, index)
то он принадлежит второму классу, и в первом классе, этот метод тогда юзает ссылку на второй класс, из за чего краш.
Может я плохо объяснил, из второго класса я вызываю метод первого класса, и в самом методе уже, есть ссылки на принадлежность к первому классу, self.sklad_list например, вот тут не пойму как self на первый класс указать, потому что метод получается статический, а если я self использую, то при вызове из второго класса TestNavigationDrawer.zip_out(self, dat, index) , self вроде как принадлежность имеет к второму классу.

Отредактировано Kasta_neda (Май 25, 2020 16:37:18)

Офлайн

#3 Май 25, 2020 16:34:52

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Классы

Kasta_neda ну а чего вы хотели? у вас же

 def zip_out(  dat, *args, **kwargs):
   skl = self.sklad_list...
так делать низзя.. у вас в таком виде в dat передаеться инстанс класса, а self вообще непонятно что, вот оно и крашиться..
вам уже писали поменяйте на
  def zip_out(self, dat, *args, **kwargs):
тогда все заработает как должно.
Или поставте декоратор @staticmethod, но тогда внутри метода не должно быть никаких self-ов что явно не ваш случай.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Май 25, 2020 16:47:20)

Офлайн

#4 Май 25, 2020 16:38:22

Kasta_neda
Зарегистрирован: 2014-06-08
Сообщения: 210
Репутация: +  6  -
Профиль   Отправить e-mail  

Классы

PEHDOM
@staticmethod
да, я уже так и сделал, от self пришлось отказаться

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

пока сделал файл в него записал словарь и юзаю по мере необходимости, а ссылку на словарь пока юзаю только где получается, хотя думаю удалить ее, что б память не нагружать, все равно словарь динамический

Отредактировано Kasta_neda (Май 25, 2020 16:45:15)

Офлайн

#5 Май 25, 2020 16:52:21

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Классы

Kasta_neda
@classmethod пробовал, не знаю правильно ли
хмм, скорее всего нет. В @classmethod первым аргументом неявным образом передаётся класс.
 @classmethod
        def method(cls, *arg):
если вы просто поставили декоратор перед методом то в dat будет предан класс TestNavigationDrawer



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#6 Май 25, 2020 16:57:00

Kasta_neda
Зарегистрирован: 2014-06-08
Сообщения: 210
Репутация: +  6  -
Профиль   Отправить e-mail  

Классы

PEHDOM
если вы просто поставили декоратор перед методом то в dat будет предан класс TestNavigationDrawer
в методе self поставил, он принадлежит теперь классу TestNavigationDrawer, но все равно не видит аргументы, видимо пока не в поле видимости почему то.
стало <class ‘program.TestNavigationDrawer’>
обычно <program.TestNavigationDrawer object at 0x0000000008E9B590>

Отредактировано Kasta_neda (Май 25, 2020 17:00:38)

Офлайн

#7 Май 25, 2020 16:59:42

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Классы

Kasta_neda
но все равно не видит аргументы, видимо пока не в поле видимости почему то.
хмм, долно все видеть, можете выложить минимально рабочий код чтиобы посмотреть на проблему?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Май 25, 2020 16:59:55)

Офлайн

#8 Май 25, 2020 17:01:30

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Классы

Kasta_neda
Что за страдания? Сюда сунул переменную, потом туда сунул, куда бы её еще сунуть… Программирование методом тыка какое-то.
Декомпозируйте задачу, назначте ответственности, нарисуйте диаграмму классов.



Офлайн

#9 Май 25, 2020 17:03:00

Kasta_neda
Зарегистрирован: 2014-06-08
Сообщения: 210
Репутация: +  6  -
Профиль   Отправить e-mail  

Классы

PEHDOM
хмм, долно все видеть, можете выложить минимально рабочий код чтиобы посмотреть на проблему?
Код на Kivy имеет много ньюансов, и первое это пароль на вход в сервис. Минимально это не получится наверное.

Офлайн

#10 Май 25, 2020 17:06:26

Kasta_neda
Зарегистрирован: 2014-06-08
Сообщения: 210
Репутация: +  6  -
Профиль   Отправить e-mail  

Классы

FishHook
Сюда сунул переменную, потом туда сунул, куда бы её еще сунуть
переменная в области видимости первого класса, к ней обращаюсь, но да классов много, вроде не пихаю ее, наоборот к ней возвращаюсь иногда.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version