Ссылки на атрибуты в Python - PullRequest
       8

Ссылки на атрибуты в Python

2 голосов
/ 17 апреля 2010

Я занимаюсь программированием на Java и недавно начал изучать Python по официальной документации. Я вижу, что мы можем динамически добавлять атрибуты данных к объекту экземпляра в отличие от Java:

class House:
  pass

my_house = House()
my_house.number = 40
my_house.rooms = 8
my_house.garden = 1

Мой вопрос: в каких ситуациях эта функция используется? Каковы преимущества и недостатки по сравнению с тем, как это делается в Java?

Ответы [ 2 ]

2 голосов
/ 17 апреля 2010

Может также использоваться при динамическом создании классов; посмотрите, например, это руководство:

http://onlamp.com/pub/a/python/2003/04/17/metaclasses.html?page=1

или этот на Mix-In, методика программирования, которая использует эту возможность для обеспечения лучшей инкапсуляции и модульности для объектно-ориентированного кода:

http://www.linuxjournal.com/article/4540

В первом учебном пособии вместо синтаксиса classname.property = value используется setattr(classname, "propertyname", value), но они одинаковы.

1 голос
/ 17 апреля 2010

Это не часто делается за пределами класса, если объект не используется в качестве своего рода корзины. Конечно, внутри __init__() сделано очень много, чтобы предоставить значения атрибутам, которые будут использоваться в других местах.

О, и говоря о Яве ...

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