PYTHON - Lets Make a Vector Class (Subclassing, Namespacing and Operator Overloading)
PYTHON - Lets Make a Vector Class (Subclassing, Namespacing and Operator Overloading)
Here we make a very small and lightweight vector class in Python as an introduction to namespacing/subclassing and operator overloading. This video is intended for educational purposes only
===================================
CODE
===================================
from array import array
from math import sqrt
class vector(array):
def __mul__(self, other):
if isinstance(other,vector):
s = 0
for i in range(len(self)):
s += self[i]*other[i]
return s
elif isinstance(other,int) or isinstance(other,float):
v = vector(self.typecode,self.tolist())
for i in range(len(self)):
v[i] *= other
return v
def __rmul__(self,other):
return self*other
def __add__(self,other):
v = vector(self.typecode,self.tolist())
for i in range(len(self)):
v[i] += other[i]
return v
def __neg__(self):
return -1*self
def __sub__(self,other):
return self + (-other)
def __truediv__(self, other):
return self*(1/other)
def __abs__(self):
return sqrt(self*self)
def __str__(self):
return str(self.tolist())+" : "+self.typecode
@property
def norm(self):
s = abs(self)
return self/s
if __name__=='__main__':
v = vector("f",[1,1,1])
print('\nv*v')
print(v*v)
print('\nv*2')
print(v*2)
print('\n2*v')
print(2*v)
print('\nv/2')
print(v/2)
print('\nv+v')
print(v+v)
print('\nv-v')
print(v-v)
print('\nabs(v)')
print(abs(v))
print('\nv.norm')
print(v.norm)
Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «PYTHON - Lets Make a Vector Class (Subclassing, Namespacing and Operator Overloading)», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.
Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.
Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!
Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.