ФорумПрограммированиеPython → изменение переменной внешнего класса

изменение переменной внешнего класса

  • pup

    Сообщения: 2 Репутация: N Группа: Кто попало

    Spritz 20 января 2013 г. 6:30

    class a:
    def __init__(self):
    self.i = 1

    def func(self):
    b(self)

    class b():
    def __init__(self,q):
    q.i = 2
    def v(self):
    q.i = 3


    f = a()
    f.func()
    print f.i
    while 1:
    pass

    не могу понять почему в конструкторе переменная меняется, а если менять её в функции то класс её не узнаёт
    def func(self):
    b(self).v()

    почему?
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 20 января 2013 г. 7:17, спустя 46 минут 47 секунд

    Патамушта в конструктор ты передал объект класса a, а в функцию нет и для нее q просто локальная переменная
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 20 января 2013 г. 9:00, спустя 1 час 43 минуты 32 секунды

    lol
    Сапожник без сапог
  • pup

    Сообщения: 2 Репутация: N Группа: Кто попало

    Spritz 20 января 2013 г. 10:57, спустя 1 час 56 минут 48 секунд

    о да

Пожалуйста, авторизуйтесь, чтобы написать комментарий!