码迷,mamicode.com
首页 > 其他好文 > 详细

装饰器的使用例子

时间:2019-01-11 20:17:28      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:The   tor   other   color   lis   __init__   sub   rap   equal   

1. 在类中的使用

class Vector():
    def __init__(self,outList):
        self.innerList = outList
    def __len__(self):
        return len(self.innerList)
    def __str__(self):
        return "("+",".join(map(str,self.innerList))+")"

    def checkLength(f):
        def wrapper(self,other):
            if len(self) != len(other):
                raise ValueError
            return f(self,other)
        return wrapper

    @checkLength    #add=check(add)
    def add(self,anotherVector):
        return [i+j for i,j in zip(self.innerList,anotherVector.innerList)]
    @checkLength
    def subtract(self,anotherVector):
        return [i-j for i,j in zip(self.innerList,anotherVector.innerList)]
    @checkLength
    def dot(self,anotherVector):
        return sum([i*j for i,j in zip(self.innerList,anotherVector.innerList)])
    def norm(self):
        return math.sqrt(sum([i**2 for i in self.innerList]))
    def equals(self,anotherVector):
        return sorted(self.innerList) == sorted(anotherVector.innerList)

装饰器的使用例子

标签:The   tor   other   color   lis   __init__   sub   rap   equal   

原文地址:https://www.cnblogs.com/likePython/p/10256819.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!