python类中的函数_python类中的函数问题
各位大神好!
我在学习的一个线代基础课中,需要用到Python来计算向量,其中有一段代码是这样的:
from math import sqrt, acos, pi #导入sqrt, acos, pi
from decimal import Decimal, getcontext
getcontext().prec = 30
class Vector():
CANNOT_NORMALIZE_ZERO_VECTOR_MSG = 'Cannot normalize the zero vector'
def __init__(self, coordinates):
try:
if not coordinates:
raise ValueError
self.coordinates = tuple([Decimal(x) for x in coordinates])
self.dimension = len(self.coordinates)
except ValueError:
raise ValueError('The coordinates must be nonempty')
except TypeError:
raise TypeError('The coordinates must be an iterable')
def plus(self, v):
"""向量加法"""
new_coordinates = [x + y for x, y in zip(self.coordinates, v.coordinates)]
return Vector(new_coordinates)
def dot(self, v):
"""计算向量点积"""
return sum([x * y for x, y in zip(self.coordinates, v.coordinates)])
def angle_with(self, v, in_degrees = False):
"""计算向量夹角"""
try:
u1 = self.normalized()
u2 = v.normalized()
angle_in_radians = acos(u1.dot(u2))
if in_degrees:
degrees_per_radian = 180. / pi
return angle_in_radians * degrees_per_radian
else:
return angle_in_radians
except Exception as e:
if str(e) == self.CANNOT_NORMALIZE_ZERO_VECTOR_MSG:
raise Exception('Cannot compute an angle with the zero vector')
else:
raise e
print('\n向量加法')
v = Vector([8.218, -9.341])
w = Vector([-1.129, 2.111])
print(v.plus(w))
print('\n计算向量夹角')
v = Vector(['3.183', '-7.627'])
w = Vector(['-2.668', '5.319'])
print(v.angle_with(w))
v = Vector(['7.35', '0.221', '5.188'])
w = Vector(['2.751', '8.259', '3.985'])
print(v.angle_with(w, in_degrees=True))
在向量加法的代码中,这个 self.coordinates 是 v = Vector([8.218, -9.341]) 传入的值,v.coordinates 是 w = Vector([-1.129, 2.111]) 传入的值,我有个问题就是,为什么 v 后面要加上coordinates 呢?这个 v 是类似 self 那样作为引用,用于访问这个属性 coordinates 吗?为什么不可以直接使用 v 呢?
另外在“计算夹角向量”的代码中:
angle_in_radians = acos(u1.dot(u2))
中的 (u1.dot(u2)) 该怎么理解好呢?
请大神赐教,谢谢!
python类中的函数_python类中的函数问题相关推荐
- python如何定义自定义函数_python类中系统自定义函数
标签: python类 双下划线特殊函数 今天遇到python类内部系统以双下划线开头和结尾的情况,特去学习一部分的应用情况,顺便记录一下.python 的OOP编程中,每个类拥有一些系统特殊定义的函 ...
- python 类函数调用外部函数_python类中调用外部函数,python 函数中 定义类
Q1:python函数里的数组如何在函数外调用出来 使用返回值的方法有两种: 可以直接把调用的函数作为变量使用 可以用调用函数给一个变量赋值 第一种情况见如下例子: l = [1,2,3,4,5] d ...
- python类中最大的_python类的学习笔记(一)
python中一切皆对象,类型的本质就是类. 在python中,用变量表示特征,用函数表示技能,因而具有相同特征和技能的一类事物就是'类',对象是则是这一类事物中具体的一个. 声明函数的方法: def ...
- python类初始化详解_python类中super() 的使用解析
描述 super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO).重复 ...
- python中help函数_Python help()函数
python中help函数 Python help() function is used to get the documentation of specified module, class, fu ...
- python语言中有哪些函数_Python语言中的函数
本文主要向大家介绍了Python语言中的函数,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 学了 Python 中的数据类型,语句,接下来就来说一下 Python 中的函数,函数 ...
- python中常见的内置函数_python常用内置函数
内置函数(***) 1.print() 屏幕输出. ''' 源码分析 def print(self, *args, sep=' ', end='\n', file=None): # known spe ...
- python解码函数_Python字符串中的两个解码与解码函数详解
Python字符串作为计算机语言中被广泛应用的语言.很少有人知道Python字符串中有两个编码和解码的函数.以下是文章的介绍,希望你能从以下的文章中会有所收获,下面是文章的介绍. Python字符串, ...
- python类定义的讲解_python类定义的讲解
Python中的类属性和对象属性的区别详解 类属性: class Employee(object): emCount=0 def __init__(self,name,salary): self.na ...
- python类的私有属性_Python类的私有属性
在 C++ 和 Java 中,属性(成员)有访问控制,如 public 表示任意代码可以访问该属性,private 表示仅当前类的代码才可以访问该属性. Python 中没有这个访问控制符,但是可以在 ...
最新文章
- 综合布线工作组2008年上半年技术课题工作安排会议通知
- Nutch URL过滤配置规则
- Linux 用户和用户操作
- PHP文件头部(header)解释
- [禅悟人生]拿得起放得下, 才是真幸福
- 淘宝内部分享:MySQL MariaDB性能优化
- BootStrap中对input的type自带的验证种类
- linux 脚本中除法运算符,Linux中Shell的算数运算符和位运算符用法笔记
- Hawtio和Apache JClouds
- 多个Tomcat同时运行环境配置 - imsoft.cnblogs
- Android中的数据编码,Android与服务端数据传输的编码处理
- mysql 快速还原数据库_快速入门:备份和还原MySQL数据库的简便方法
- 微信管理系统-联络易
- MTK芯片资料分享,2018MTK芯片资料大全
- 网页游戏外挂的设计与编写:QQ摩天大楼【二】(登陆准备-信息处理方式)
- aidlearning开发python使用教程_极致安卓之—Aid Learning基于Jupyter开发Java和Python
- wp8.1 java_UWP tips (与wp8.1的不同)
- 倾斜摄影超大场景的三维模型的顶层合并常见的问题分析
- echarts中对整个图形旋转90°(实现div旋转90度)
- [MySQL] 零基础学MySQL 04
热门文章
- html制作手机预览效果,新移动端Html5方式预览报表插件
- 【windows】python安装小结
- What?Java这么神奇的lambda表达式
- python提供了_Python中 为我们提供了一些独特的解决方案的方法特性
- signal.h 中的宏定义 SIG_DFL 及 SIG_IGN
- Keil uVision2 简介
- 简述:B2B、B2C、C2C、O2O
- mysql的二级分区_分布式数据库一级分区和二级分区
- for oracle中pivot_Oracle PIVOT 行转列方法
- 鬼泣4计算机丢失xinput,Win7系统运行游戏报错“计算机丢失XINPUT1-3.dll”