Python类中有三个常用的装饰器
分别是
@property(使一个方法可以被当成属性调用,常用于直接返回某一不想被修改的属性)
@classmethod(将一个方法定义为类方法,其中第一个参数要修改为cls,使得该方法可以不用实例化即可被调用)
@staticmethod(静态方法,类似于类方法,也可以不用实例化,只不过该方法恰好处于类中)
@property
@property装饰器来创建只读属性,
@property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用,这样可以防止属性被修改
加了 @property 后,可以用调用属性的形式来调用方法,后面不需要加()。
隐藏属性名,让用户进行使用的时候无法随意修改
#没有加 @property , 必须使用正常的调用方法的形式,即在后面加()
@classmethod
@classmethod
def format_date(cls, str_date): ##第一个参数cls 是表示调用当前的类名
cls(year, month, day)# 返回一个初始化类对象
object 类提供的 __repr__() 方法总是返回一个对象(类名 + obejct at + 内存地址),这个值并不能真正实现自我描述的功能
四元素取逆其实就是xyz的值分别取反
q = {x,y,z,w}
q.inverse() = {-x,-y,-z ,w}
旋转矩阵取逆后再转换成四元素与四元素直接取逆得到的值一致
q = [6,2,3,1]
qinv = np.multiply(q,np.array([-1,-1,-1,1]))
print(qinv)