人脸识别5.4- insightface安装包预测源码,整体阅读分析和调试

1、python @property的介绍与使用

1.修饰方法,是方法可以像属性一样访问
2.与所定义的属性配合使用,这样可以防止属性被修改。

@property
    def embedding_norm(self):
        if self.embedding is None:
            return None
        return l2norm(self.embedding)

2、Python isinstance() 函数/Python setattr() 函数/Python getattr() 函数

    def __setattr__(self, name, value):
        if isinstance(value, (list, tuple)):
            value = [self.__class__(x)
                    if isinstance(x, dict) else x for x in value]
        elif isinstance(value, dict) and not isinstance(value, self.__class__):
            value = self.__class__(value)
        super(Face, self).__setattr__(name, value)
        super(Face, self).__setitem__(name, value)
>>> class Test():
  		name = "victor"
  		def run(self):
  			return "Hello Python!"
>>> t = Test()
>>> getattr(t, 'name') # 获取对象t是否存在"name"这个字符串对应的值,并返回
'victor'
>>> getattr(t, 'run') # 获取对象t是否存在"run"这个字符串对应的方法的内存地址,并返回
<bound method test.run of <__main__.test instance at 0x0269C878>>
>>> getattr(t, "run")()  #获取run方法,后面加括号可以将这个方法运行
Hello Python!

3、__setattr__函数相关介绍

魔法函数

__class__是的一个内置属性,表示类的类型,返回<type ‘type’> ;

也是类的实例的属性,表示实例对象的类。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_15821487/article/details/126545878
今日推荐