Код: Выделить всё
class Test(object):
a_var = 1
def a_func(self):
self.a_var = self.a_var + 1
print(self.a_var, '[ a_var inside a_func() ]')
if __name__ == '__main__':
t = Test()
t.a_func()
Код: Выделить всё
class Test(object):
a_var = 1
def a_func(self):
a_var = a_var + 1
print(a_var, '[ a_var inside a_func() ]')
if __name__ == '__main__':
t = Test()
t.a_func()
Почему правило LEGB не применяется во втором случае? Разве он не должен получать значение из закрытой области видимости, являющейся классом?
Подробнее здесь: https://stackoverflow.com/questions/451 ... egb-rule-n