Найти - Пользователи
Полная версия: Где находится нофелет?
Начало » Python для новичков » Где находится нофелет?
1
Voroshek
В какой области видимости?
 >>> class My_class:
>>>   nofelet = 1
>>>   def __init__(self):
>>>     self.dragonfly = 2
>>> a = My_class()
>>> a.nofelet
1
Хотя в __init__ он не создаётся, а Луц утверждает, что переменная a создаётся функцией __init__(). Но чёрт с ним, с Кащеем, он злодей…(с) Дальше - интереснее:
 >>> My_class.nofelet = 3
>>> My_class.dragonfly = 4
>>> a.nofelet
3
>>> a.dragonfly
2
То есть nofelet является общей переменной для My_class и для а… А теперь нет:
 >>> a.nofelet = 5
>>> My_class.nofelet = 6
>>> a.nofelet
5
То есть теперь это две разные переменные? А была одна что ли?
JOHN_16
Изучите что такое атрибут объекта класса и атрибут экземпляра класса. Ну и ООП в целом
py.user.next
В Dive Into Pytyhon 3 есть глава, где описываются переменные экземпляра и переменные класса
http://getpython3.com/diveintopython3/iterators.html#instance-variables
http://getpython3.com/diveintopython3/iterators.html#a-plural-rule-iterator

Надо различать класс и экземпляр этого класса. Так как класс в питоне сам по себе так же является экземпляром, то у него могут быть собственные атрибуты и методы, как у какого-нибудь объекта. Атрибуты класса попадают ко всем его экземплярам в одном и том же виде. А методы класса объявляются статическими и могут использоваться напрямую, без создания экземпляра этого класса.

Атрибуты класса часто используются для задания констант, связанных с этим классом. Так ты можешь для класса окна Window иметь в этом классе читаемые константы Window.FULLSCREEN , Window.MINIMIZED. И потом ты как снаружи экземпляра, так и внутри экземпляра можешь эти константы использовать.
Voroshek
Пнятненько.
Учу по Луцу, из него это неочевидно
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB