Как распечатать результат вектора?

66
6

Я делаю несколько задач о векторно-матричном умножении с использованием Python. Я думаю, что абсолютно необходимо сказать вам, что эти задачи должны выполняться без использования NumPy.

class Vec4():
def __init__(self, x = 0, y = 0, z = 0, w = 0):
self.values = [x,y,z,w]
...

def __str__(self):
toReturn = ''
if self is None: return '0.00 0.00 0.00 0.00'
for c in range(0,4):
toReturn += "%.2f" % self.values[c]
if c != 3:
toReturn += ' '
return toReturn

def mul(self, v):
x = ...
y = ...
z = ...
w = ...
return Vec4(x,y,z,w)

Я не публикую полный код по некоторым причинам. То, что я просто хочу знать, это как использовать команду печати здесь для результирующего вектора.

print(Vec4(x,y,z,w))

Эта команда печати не работает. Что еще я могу сделать?

Спасибо заранее!

спросил(а) 2019-05-11T20:59:00+03:00 1 год, 1 месяц назад
1
Решение
100

Вы можете сделать это:

def __str__(self):
return str(self.x) + ' ' + str(self.y) + ' ' + str(self.z) + ' ' + str(self.w)

Когда вы будете вызывать, например, print(Vec4(1,2,3,4)) он должен вернуть 1 2 3 4.

ответил(а) 2019-05-11T21:08:00+03:00 1 год, 1 месяц назад
38

Не могли бы вы использовать print(Vec4.x, Vec4.y, Vec4.z, Vec4.w) Поскольку каждая из этих переменных принадлежит классу Vec4, я думаю, что это может сработать.

ответил(а) 2019-05-11T21:02:00+03:00 1 год, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема