Python, как найти объект класса от дочерней сущности? - PullRequest
0 голосов
/ 20 июля 2010

мой код в Python следующий.

class A(object):
   b = B()
   def d(self):
      print "Hi"

class B():
   def C(self):
      self.__self__.d()#edit ::: i need to call d() method here. i know __self__ is wrong
      # do knowledge for B being variable inside object A needed ? i.e
      # passing parent object via init is needed as shown in some answer ?
      # i search and found im_self __self__ etc...

temp = A()
temp.b.C()#should print hi ?

Как мне это сделать?то есть доступ к методу объекта родительского класса внутри дочернего метода?

В основном я хочу послать некоторый сигнал родительскому классу от одного объекта-родителя, чтобы вызвать некоторый метод из другого объекта-родителя (не показано в коде выше).Надеюсь, меня это не смущает.

Ответы [ 2 ]

2 голосов
/ 20 июля 2010

См. этот предыдущий ответ.Вместо этого он имеет производный класс, но может быть полезно разобраться.

Вы могли бы передать A в B в методе init или в качестве отдельного метода.Пока это вызывалось до того, как у вас был вызов Bc (), он работал бы нормально.Это не идеальное решение, но оно работает.

class B():
    def __init__(self, someA):
        self.parent = someA
    def C(self):
        self.parent.d()

class A(object):
   def __init__(self):
       self.b = B(self)
   def d(self):
      print "Hi"
1 голос
/ 20 июля 2010

Вы должны передать экземпляр и сохранить его в переменной-члене:

class B(object):
    def __init__(self, a):
        self.a = a
    def c(self):
        self.a.d()

class A(object):
    def __init__(self):
        self.b = B(self)
    def d(self):
        print "Hi"

Обратите внимание, что ваш код выдаст много ошибок из-за отсутствия self параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...