Cet article vous présente une introduction à l'utilisation de hasattr(), getattr() et setattr() en Python (exemples de code). J'espère qu'il aura une certaine valeur de référence. t'aider.
1. hasattr(object, name)
Déterminez s'il y a un attribut name dans l'objet Si tel est le cas, il retournera True, sinon. , il renverra False.
class MyClass(object): name = 'jack' age = '22' obj = MyClass() print(hasattr(obj, 'name')) # True print(hasattr(MyClass, 'age')) # True print(hasattr(obj, 'gender')) # False
2. getattr(object, name, [default])
est utilisé pour obtenir les attributs ou méthodes de l'objet, les imprimer s'ils existent . Imprimez-les si ce n'est pas le cas. Valeur par défaut, si aucune valeur par défaut n'est définie, une erreur sera signalée
class MyClass(object): name = 'jack' age = '22' def func(self): return 'hello world!!!' obj = MyClass() print(getattr(MyClass, 'name')) # jack print(getattr(obj, 'age')) # 22 print(getattr(MyClass, 'func')) # <function MyClass.func at 0x000001ACDE9A9AE8> print(getattr(obj, 'func')) # <bound method MyClass.func of <__main__.MyClass object at 0x000001D1505D01D0>> # print(getattr(MyClass, 'func1')) # 没有设置默认值,找不到方法会报错: AttributeError: type object 'MyClass' has no attribute 'func1' print(getattr(MyClass, 'func1', None)) # 设置了默认值None,找不到就会返回默认值: None print(getattr(MyClass, 'func')('self')) # hello world!!! print(getattr(obj, 'func')()) # hello world!!!
3. 🎜> est utilisé pour attribuer une valeur à la clé d'attribut de l'objet . Si la clé existe, mettez à jour la valeur de la valeur. Si la clé n'existe pas, créez d'abord la clé d'attribut puis attribuez-lui une valeur
Utilisez les trois méthodes ensemble :class MyClass(object): name = 'jack' age = '22' obj = MyClass() setattr(MyClass, 'name', 'tom') print(getattr(MyClass, 'name')) # tom setattr(obj, 'age', 28) print(getattr(obj, 'age')) # 28 setattr(MyClass, 'gender', 'male') print(getattr(MyClass, 'gender')) # male print(getattr(obj, 'gender')) # male setattr(obj, 'hobby', 'skating') print(obj, 'hobby') # <__main__.MyClass object at 0x00000209F5070630> hobby print(MyClass, 'hobby') # <class '__main__.MyClass'> hobby
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!