Numpy_矩阵的multiply_python的属性以及类特性_装饰器——@property_@classmethod_@staticmethod

发布时间 2023-05-26 18:25:51作者: 辰令

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)