2009-10-20 3 views
4

Мне нужна помощь в написании кода для метода конструктора Python.Конструкторы в Python

Этот метод конструктор будет принимать следующие три параметра:

x, y, angle 

Что является примером этого?

+2

Является ли это домашнее задание? Если это так, пожалуйста, пометьте его [домашняя работа]. –

+0

//, Вы хотели бы улучшить этот вопрос, @hugh? –

ответ

14
class MyClass(object): 
    def __init__(self, x, y, angle): 
    self.x = x 
    self.y = y 
    self.angle = angle 

Конструктор всегда записывается как функция, называемая __init__(). В качестве первого аргумента он всегда должен ссылаться на построенный экземпляр. Обычно это называется self. Остальные аргументы до программиста.

object в первой строке является суперклассом, то есть это говорит о том, что MyClass является подклассом object. Это нормально для определений классов Python.

Вы получаете доступ к полям (экземплярам) экземпляра, используя синтаксис self..

+0

спасибо, если возможно, кто-то может объяснить это, поэтому я могу понять его и узнать его – hugh

+1

Технически \ _ \ _ init \ _ \ _ не является конструктором, \ _ \ _ new \ _ \ _ is; см. http://stackoverflow.com/questions/6130644/what-is-the-difference-between-a-constructer-and-initializer-in-python Объект уже существует, когда вызывается \ _ \ _ init \ _ \ _, который инициализирует свои поля. –

-3
 
class MyClass(SuperClass): 
    def __init__(self, *args, **kwargs): 
     super(MyClass, self).__init__(*args, **kwargs) 
     # do initialization 
+0

Это не то, что он попросил. –

+3

Часто конструктор может иметь дополнительные параметры, которые не должны передаваться конструктору parent (s) –

+0

//, @giolekva. Не хотите ли вы улучшить это? –

3

Конструкторы объявляются с __init__(self, other parameters), так что в этом случае:

def __init__(self, x, y, angle): 
    self.x = x 
    self.y = y 
    self.angle = angle 

Вы можете прочитать об этом здесь: Class definition in python

Смежные вопросы