2014-01-13 5 views
0

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

class window: 

    def __init__(self,x,y,width,height): 
    self.x=x 
    self.y=y 
    self.width=width 
    self.height=height 

    def shift(self,shift_x,shift_y): 
    self.x=self.x+shift_x 
    self.y=self.y+shift_y 

    def divide(self): 
    window A 
    A.x=(self.x)/2 
    A.y=(self.y)/2 
    A.width=(self.width)/2 
    A.height=(self.height)/2 
    return A 

Как реализовать функцию деления правильно? где я хочу, чтобы он возвращал тот же класс? Я знаю, что предопределяю A, как на C++, но я не уверен, что это необходимо или что является правильным обходным путем, так как я получаю сообщение об ошибке

ответ

3

Похоже, вы хотите:

def divide(self): 
    newWindow = window(self.x/2, self.y/2, self.width/2, self.height/2) 
    return newWindow 

Чтобы создать экземпляр класса, вы вызываете его, например window(...), передавая все необходимые ему аргументы.

Вы должны прочитать , чтобы ознакомиться с основами Python.

1
A = window(self.x/2, self.y/2, self.width/2, self.height/2) 

Точно так же вы должны создать объект вне класса.

+0

и после этого я должен добавить возврат A, правильно? – Arturo

+1

@Arturo: Правильно. – user2357112

1

Создание экземпляра класса осуществляется с помощью my_instance = MyClass(). Вероятно, вам стоит взглянуть на официальный раздел руководства по Python по классам и объектам: http://docs.python.org/2/tutorial/classes.html