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’> ;
也是类的实例的属性,表示实例对象的类。