Форум сайта python.su
0
Изучаю питон и никак в голове не укладываются классы Python.
Вот пример кода
>>> class Employee:
... pass
...
>>> john = Employee()
>>> john.name = "AAA"
>>> john.name
'AAA'
>>>
Офлайн
19
По той же причине, по которой работает
>>> a = 1
Ведь переменная a нигде не объявлена.
Аттрибут класса создается так же в момент присваивания ему значения.
Офлайн
0
Ммм, тут разница
когда просто объявляем переменную, а тут мы объявляем ее внутри уже существующего объекта. Внутри класса.
Я как-то не очень вижу смысл этого.
+ ситуация, вот такая:
if (a==b) :
john.name = "ABC"
else:
pass
print(john.name)
Офлайн
0
Да. Только pass должен быть с отступом.
Офлайн
19
И скобки в if лишние.
AlalaЯ бы посоветовал Вам рассматривать объекты классов как некий словарь, который может изменяться в процессе выполнения. Питон это динамичный язык.
когда просто объявляем переменную, а тут мы объявляем ее внутри уже существующего объекта. Внутри класса.
AlalaТочно так же, как и если бы Вы обратились к несуществующей переменной
Получается в половине случаев будем получать эксешен?
if False:
a = 0
print a
AlalaYep, каждым инструментом нужно пользоваться с осторожностью. Обычно таких ситуаций, если они явно не предусмотрены в дизайне класса, можно избегать.
Получается в половине случаев будем получать эксешен?
Отредактировано (Авг. 25, 2011 00:32:41)
Офлайн
0
Какая прелесть, девушки взялись за Python. Поддерживаю! :)
Офлайн
19
EnchantnerЛюбопытно, как Вы определяете гендерную принадлежность ТС?
Какая прелесть, девушки взялись за Python. Поддерживаю! smile
Офлайн
0
Alala:)
Раньше с классами я общалась
Офлайн
0
cutwater
по окончаниям глаголов ;)
Офлайн
19
EnchantnerСтарею.
по окончаниям глаголов wink
Офлайн