Создание классов в Python - установка атрибутов - PullRequest
0 голосов
/ 27 декабря 2010

Исходя из фона Java, я хочу, чтобы класс имел определенные атрибуты и устанавливал их в конструкторе.

В настоящее время я использую глобальное ключевое слово, например.

def class A():

 global attribute1
 global attribute2

 __init__():
  attribute1 = 1
  attribute2 = 2

Есть ли лучший способ сделать это?Причина, по которой я спрашиваю, заключается в том, что я не уверен в правильности установки всех атрибутов «Global».

РЕДАКТИРОВАТЬ: Кроме того, всякий раз, когда я получаю доступ к атрибутам, мне нужен self.attribute ... это необходимо?то есть в Java вы не требуете this.attribute все время.

1 Ответ

4 голосов
/ 27 декабря 2010

Правильный способ сделать это - добавить атрибуты в конструктор и добавить их в ваш экземпляр.

>>> class A(object):
...    def __init__(self, attribute1, attribute2):
...        self.attribute1 = attribute1
...        self.attribute2 = attribute2
...

>>> a = A(1, 2)
>>> a.attribute1
1
>>> a.attribute2
2

Что касается вашего второго вопроса, да, вам нужно использовать self.attribute в экземпляре для ссылки на него.

...