美文网首页Python 之 Machine Learning
01线性代数-创建一个向量

01线性代数-创建一个向量

作者: 阿轲666 | 来源:发表于2019-05-26 15:02 被阅读0次

    自己造一个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貌似没有什么特殊的用途
    
    

    reprstr分别是两个魔法方法还需要进一步理解。

    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老师慕课网“专为程序员设计的线性代数课程”

    相关文章

      网友评论

        本文标题:01线性代数-创建一个向量

        本文链接:https://www.haomeiwen.com/subject/wzaxtctx.html