自己造一个playLA
python可以import各种包,也可以自己造一个包。自己造一个playLA这样一个包,并添加了自己第一个类Vec
- 右键new-python package-创建一个playLA
Vector.py
class Vector:
def __init__(self, lst):
self._values = lst
# 创建一个数组,缩写lst,传给values一个数组的方式存储向量中所有的元素
def __getitem__(self, index):
return self._values[index]
# 取出向量第index的元素,python的魔法方法之一
def __len__(self):
return len(self._values)
# 返回向量的长度(维度)
def __repr__(self):
return "Vector({})".format(self._values)
# 向量类的对象显示,format方式确定{}中的内容是self._values对应的内容
def __str__(self):
return"({})".format(", ".join(str(e) for e in self._values))
# repr是系统调用的,而str是用户调用的。用,的分隔符连连接{}中所有的元素
# __repr__和__str__分别是两个魔法方法还需进一步理解。
# str是人和人的交互的语言,repr是机器的交互语言,就目前我的理解,repr貌似没有什么特殊的用途
repr和str分别是两个魔法方法还需要进一步理解。
main_vector.py
from playLA.Vector import Vector
# 自己造一个playLA这样一个包,并添加了自己第一个类Vec
if __name__ == "__main__":
vec = Vector([5,2])
print(vec)
print("len(vec)={}".format(len(vec)))
print(vec[0], vec[1])
print("vec[0] = {}, vec[1] = {}".format(vec[0], vec[1]))
# format方式确定{}中的内容是vec[0]和vec[1]对应的内容
不懂得代码,埋头反复敲,敲着敲着就明白了。遇到不懂得python语法点既要搞明白,又不着急搞那么明白。不要寄希望于一次把一个概念彻底搞明白,比如str和repr的区别。
- 代码来源于bobo老师慕课网“专为程序员设计的线性代数课程”
网友评论