Python 实现简单 Vector 类
这一节,我们来实现一个简单的 Vector 类。
Vector 类有两个属性,为 x,y 坐标,即对应向量的横纵坐标。
首先,实现重载 + 号的方法def __add__
,及实现两个向量的加法。具体做法是:将加号两边的 Vector 对象的 x, y值相加,得到新的 x, y值并且返回一个新的向量对象。
__sub__
方法实现了 Vector 对象的减法,和加法差不多。让向量对象的对应属性相减,并返回新的向量对象。
__ads__
方法,使得可以对实例进行 ads操作(即取横纵坐标的模)。
__mul__
方法,使得实例可以通过乘法进行伸缩的操作。
__repr__
与__str__
方法使得打印对象更加美观。
import math
# Python高效编程class Vector(object):def __init__(self, x, y):self.x = xself.y = ydef __add__(self, other):x = self.x + other.xy = self.y + other.yreturn Vector(x, y)def __sub__(self, other):x = self.x - other.xy = self.y - other.yreturn Vector(x, y)def __abs__(self):return math.sqrt(self.x ** 2 + self.y ** 2)def __bool__(self):return bool(self.x or self.y)def __mul__(self, times):return Vector(self.x * times, self.y * times)def __repr__(self):return 'Vector({}, {})'.format(self.x, self.y)__str__ = __repr__def main():v1 = Vector(3, 5)v2 = Vector(4, 5)v3 = v1 + v2v4 = v3 * 2v5 = v2 - v1print(v3)print(v4)print(abs(v3))print(v5)if __name__ == '__main__':main()
Python 实现简单 Vector 类相关推荐
- python游戏脚本实例-python实现的简单文本类游戏实例
本文实例讲述了python实现的简单文本类游戏实现方法.分享给大家供大家参考.具体实现方法如下: ################################################### ...
- 用来表示python代码块的是什么_三分钟带你用简单的Python代码深入理解Python中的元类...
互联网的数据爆炸式的增长,而利用 Python 爬虫我们可以获取大量有价值的数据 类也是对象 在理解元类前,需要先掌握Python中的类.在大多数编程语言中,类就是一组描述如何生成对象的代码段.在Py ...
- python vector 初始化_一文带你走进Python中的数据类
全文共2607字,预计学习时长14分钟 图源:unsplash 数据类适用于Python3.7或更高版本,它不仅可以用作数据容器,还可以编写样板代码,简化创建类的过程. 创建第一个数据类 创建一个数据 ...
- python文字冒险游戏_python实现的简单文本类游戏实现方法
本文实例讲述了python实现的简单文本类游戏实现方法.分享给大家供大家参考.具体实现方法如下: ################################################### ...
- python文字冒险游戏_python实现的简单文本类游戏实例
本文实例讲述了python实现的简单文本类游戏实现方法.分享给大家供大家参考.具体实现方法如下: ################################################### ...
- 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)
27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...
- 高斯核函数python代码_单类SVM:SVDD
话接上文(SVM的简单推导),这篇文章我们来看单类SVM:SVDD.可能大家会觉得很奇怪,我们为什么需要单分类呢?有篇博客举了一个很有意思的例子. 花果山上的老猴子,一生阅猴无数,但是从来没有见过其它 ...
- Python的简单介绍(二)
接Python的简单介绍(一): 九.条件语句 if 判断条件: 执行语句-- else: 执行语句-- if 判断条件1: 执行语句1-- elif 判断条件2: 执行语句2-- elif 判断条件 ...
- 【stanford C++】容器III——Vector类
主要介绍如下5个容器类--Vector, Stack,Queue,Map和Set,各个都表示一重要的抽象数据类型.另外,各个类都是一些简单类型的值的集合,所以称它们为容器类. 暂且我们先不需要知道它们 ...
最新文章
- NASA艾姆斯研究中心将跟Uber团队展开合作
- 正确理解Spring AOP中的Around advice
- C#设置WebBrowser IE浏览器版本
- dateformat java 格式_java Date日期类和SimpleDateFormat日期类格式
- Sightseeing Cows POJ - 3621
- stm32 web get 参数_纯进口mpv销量排行榜 迈巴赫vs680商务车参数
- 如何单独编译Linux源代码中的驱动模块,比如NVMe驱动?
- AD14使用过程记录!
- 微信小程序设置页面背景颜色
- PHP编程 967 个函式 值得收藏
- 学习Java软件编程哪个机构好
- bzoj3694:最短路(最短路树+并查集)
- EasyRecovery五个步骤搞定数据恢复
- 【Java编程】调用方法判断一个数是否是素数
- 没有激光雷达设备,只有无人机也可以生成真地形(DEM)和等高线(CAD)
- 计算机教师面试万能稿,教资面试——信息技术试讲逐字稿
- 一篇带你搞懂 java 集合
- 手把手带你清理电脑版微信冗余资源
- LSTM-CNN-Attention算法系列之一:LSTM提取时间特征
- 构造/析构/赋值运算--龙之介《Effective C++》实验室
热门文章
- 机器学习之K-means原理详解、公式推导、简单实例(python实现,sklearn调包)
- 【漏洞扫描】巡风系统Windows下面部署
- 女程序员、女设计师、女运营……原来女生也能活成这样!
- spdlog 封装为 DLL
- arcgis安装(linux)
- [ArcGIS常见错误集:1]ArcGIS 安装遇到error 1406
- PAT (Basic Level) 刷题-1002:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字
- windows server2012安全测评整改操作系统配置
- upload -labs通关解析及上传类型总结和思考
- python scrapy 简单教程_Scrapy的简单使用教程