Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Python для новичков
  • » как вызвать функцию, переопределяющую событие, из другого класса? какие аргументы у нее будут? [RSS Feed]

#1 Авг. 30, 2015 21:53:55

boombox
Зарегистрирован: 2015-08-30
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

как вызвать функцию, переопределяющую событие, из другого класса? какие аргументы у нее будут?


функцию mousePresEvent(self,event) переопределили в одном классе. как вызвать ее в другом классе? какие аргументы указать?


Офлайн

#2 Авг. 30, 2015 23:41:59

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

как вызвать функцию, переопределяющую событие, из другого класса? какие аргументы у нее будут?

Но ведь этот метод принадлежит классу А, класс Б понятие не имеет про класс А и его методы, и не имеет на него никаких прав.
Как вариант, оформите данный метод как метод нового класса C, и используйте его при определение изначального класса, таким образом задействовав множественное наследие.
Т.е (python 2).

class C(object):
     def new_method_one(..)
class A(base_class, C): # base_class - это базовый класс от которого происходит наследие
     ....
class B(base_class, C):
     .....



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Авг. 31, 2015 00:19:28

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

как вызвать функцию, переопределяющую событие, из другого класса? какие аргументы у нее будут?

boombox
какие аргументы указать?
Ну если буквалнь воспринимать вопрос то наверное так:

class Ta:
   ....
   def on_mouse(self,evt):
        self.x=evt.x
....
a=Ta()
clas Tb:
   ....
   def some_fun(self):
        evt=Any_class()
        evt.x=3
        a.on_mouse(evt)

т.е. Первый аргумент объет типа Ta. Ну не знаю что это у вас там. Наверное активное окно.
второй - любой класс у которого достаточно свойств, чтобы удовлетворить вашу функцию on_mouse

Портить системные события считается плохим тоном. Лучше определить свой тип событий



Отредактировано doza_and (Авг. 31, 2015 00:21:38)

Офлайн

#4 Авг. 31, 2015 12:57:32

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

как вызвать функцию, переопределяющую событие, из другого класса? какие аргументы у нее будут?

def mousePresEvent(self, event):
     .....
class A(object):
     def mousePresEvent(self, event):
            return mousePresEvent(self, event)
class B(object):
     def mousePresEvent(self, event):
            return mousePresEvent(self, event)



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Авг. 31, 2015 19:58:45

boombox
Зарегистрирован: 2015-08-30
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

как вызвать функцию, переопределяющую событие, из другого класса? какие аргументы у нее будут?

спасибо

Офлайн

  • Начало
  • » Python для новичков
  • » как вызвать функцию, переопределяющую событие, из другого класса? какие аргументы у нее будут?[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version