Я новичок в python и пробую себя в классах. Я понимаю разницу между __init__
и __new__
. Вот отрывок из моего класса,Использование __new__ в python
class Vector2D:
def __new__(cls):
print "Testing new"
return super(Vector2D,cls).__new__(cls)
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return "X:" + str(self.x) + ",Y:" + str(self.y)
Я инициализирую класс, как показано ниже, и ожидает «Тестирование нового», чтобы напечатать первое:
def Main():
vec = Vector2D(1,2)
print "Printing vec:",vec
, но я получаю только выход,
Printing vec: X:1,Y:2
Что мне нужно сделать в методе __new__()
для «Тестирования нового» для печати?
спасибо.
класс Vector2D: ===> class Vector2D (объект): –
@WillVousden Мне пришлось отступать пару раз здесь, в стеке, чтобы получить стиль кода. – Ayubx
@Ayubx Я исправил ваш отступ для вас. Просто напишите код, как и должно быть (так что никаких дополнительных отступов), затем выберите полный блок кода и нажмите кнопку '{}' один раз. Это приведет к тому, что все 4 пространства будут размещены для правильной компоновки. – Duncan