есть ли разница между «a.b.a» и «b.b.a» - PullRequest
0 голосов
/ 13 января 2010
class a(object):
    class b:
        a='aaa'

print a.b.a#print 'aaa'

b=a()
print b.b.a#print 'aaa'

Ответы [ 3 ]

5 голосов
/ 13 января 2010

номер

Чтобы создать переменные экземпляра, вам необходимо явно поставить перед ними префикс self. в методе конструктора __init__(self).

В вашем коде вы просто присваиваете в области видимости класса, и эти переменные могут быть доступны обоими способами.

4 голосов
/ 13 января 2010

Запуск вашего кода, а затем a.b.a is b.b.a дает результат True, который указывает, что они действительно ссылаются на один и тот же объект - переменную класса a внутреннего класса b.

0 голосов
/ 13 января 2010

В любом случае, вы обращаетесь к: «externalclass / object.innerclass / object.member».

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