![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Litkevich Yuriy |
![]() ![]()
Сообщение
#1
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
чем отличаются две переменные, к которым присваивание осуществляется так:
myvar = ... self.myvar = ... может быть первая локальная, а вторая член класса? |
|
|
![]() |
Novak |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 319 Регистрация: 15.3.2008 Из: Замкадыш Пользователь №: 121 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
self - это просто переменная. в функциях класса она ссылается на объект, т.е. это не какое-то ключевое слово.
Другими словами, в функцию класса передаётся объект параметром, явно. Через эту переменную можно получить доступ к полям объекта. Область видимости этой переменной такая же, как и у всех, объявленных внутри текущей фукнции - это сама функция. В рамках класса можно сделать вот так:
Результаты: 3 Потому рекомендуется все используемые поля без крайней необходимости объявлять сразу явно, или в теле класса, или в конструкторе-функции __init__ Да, не забывай, что в питоне все переменные - ссылки на объекты. Потому и можно ими так легко играться. Сообщение отредактировал Novak - 12.11.2010, 23:02 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 12.5.2025, 13:37 |