python3 定义向量运算
2018-05-30 11:04
239 查看
from math import hypot #定义向量的构造方法 class Vector: def __init__(self,x=0,y=0): self.x=x; self.y=y; ''' __repr__是python的内置方法,他能将一个对象用字符串的形式表达出来 %r用rper()方法处理对象 输出结果 'content' %s用str()方法处理对象 输出结果 content 不带引号 如果你只想实现这两个特殊方法中的一个,__repr__ 是更好的选择,因为如果一个对象 没有 __str__ 函数,而 Python 又需要调用它的时候,解释器会用 __repr__ 作为替代 ''' def __repr__(self): return 'Vector(%r,%r)' % (self.x,self.y) ''' 定义__abs__方法 返回hypot函数的运算结果 hypot() 返回欧几里德范数 sqrt(x*x + y*y)。 ''' def __abs__(self): return hypot(self.x,self.y) ''' bool(abs(self)) 把模值变成了布尔值 我们对 __bool__ 的实现很简单,如果一个向量的模是 0, 那么就返回 False,其他情况则返回 True。 如果想让 Vector.__bool__ 更高效,可以采用这种实现: def __bool__(self): return bool(self.x or self.y) ''' def __bool__(self): return bool(abs(self)) ''' __add__ 和 __mul__,这两个方法的返回值都是新创建的向量对象, other代表其他向量对象, 其返回值都是靠运算符 + 或者 * 实现的运算结果 ''' def __add__(self, other): x=self.x+other.x y=self.y+other.y return Vector(x,y) def __mul__(self,scalar): return Vector(self.x*scalar,self.y*scalar) #创建两个向量实例 v1 v2 print('=============================输出两个向量加运算========================') v1=Vector(2,4) v2=Vector(2,1) print(v1+v2) print('=============================输出单个向量欧几里德运算========================') # 求该向量的欧几里得范数 v=Vector(3,4) print(abs(v)) print('=============================输出单个向量的标量乘法运算========================') print(v*3) print(abs(v*3)) # (3*3)(3*3) +(4*3)(4*3) 的结果开方
相关文章推荐
- python使用numpy向量运算注意点
- 利用python做矩阵的简单运算(行列式、特征值、特征向量等的求解)
- python 向量之间的运算
- Python入门教程5. 字典基本操作【定义、运算、常用函数】[原创]_python_脚本之家
- Python:用Numpy来实现向量的各种运算
- 39、C++定义一个类,实现向量的加减运算
- Python求矩阵特征值及特征向量和实现对角化矩阵简化矩阵n次方运算
- Python入门教程3. 列表基本操作【定义、运算、常用函数】[原创]_python_脚本之家
- C++ vs Python向量运算速度评测
- Python 集合的定义以及常用运算及函数
- Python基础语法学习--函数+案例--定义一个函数,实现两个数的四则运算
- Python def函数的定义、使用及参数传递实现代码
- python基础:python循环、三元运算、字典、文件操作
- python的模块定义、导入、优化详解
- Vector多维向量定义
- 二维 三维 向量vector 定义,初始化
- Python数组定义
- Python中定义“私有”成员变量和成员函数
- python -- numpy 基本数据类型,算术运算,组合,分割 函数