在我们使用内置函数的时候,有时候需要添加属性,有时候要对属性进行删除的操作。前者我们使用setattr可以解决。在删除属性这方面,小编给大家介绍一个新函数delattr,它的使用正好和setattr相反。关于delattr中删除属性的具体代码用法,我们会在以下的内容中为大家进行介绍。
1.基本用法
# delattr(object, name) # setattr() 相关的函数。实参是一个对象和一个字符串。该字符串必须是对象的某个属性。如果对象允许,该函数将删除指定的属性。例如 delattr(x, 'foobar') 等价于 del x.foobar 。 # 实参是一个对象和一个字符串。该字符串必须是对象的某个属性。如果对象允许,该函数将删除指定的属性。 class Cat: def __init__(self, name, age): self.name = name self.age = age def intro(self): return f'这只猫咪叫{self.name},今年{self.age}岁' cat = Cat('ipipgo', 3) # print(f'{ hasattr(cat, "name") = }') # print(f'{ cat.name = }') # delattr(cat, "name") # print(f'{ hasattr(cat, "name") = }') # print(f'{ cat.name = }') # print(f'{ hasattr(cat, "intro") = }') # print(f'{ cat.intro() = }') # print(f'{ cat.__dict__ = }') # print(f'{ Cat.__dict__ = }') # delattr(cat, 'intro') # delattr(Cat, 'intro') # print(f'{ hasattr(cat, "intro") = }') # print(f'{ cat.intro() = }') # delattr(x, 'foobar') 等价于 del x.foobar 。 print(f'{ hasattr(cat, "name") = }') del cat.name print(f'{ hasattr(cat, "name") = }')
2.当属性不存在的时候,会报错
>>> a.name #属性name已经删掉,不存在 Traceback (most recent call last): File "<pyshell#47>", line 1, in <module> a.name AttributeError: 'A' object has no attribute 'name' >>> delattr(a,'name') #再删除会报错 Traceback (most recent call last): File "<pyshell#48>", line 1, in <module> delattr(a,'name') AttributeError: name
以上就是python中delattr的一些基本用法,不过平时我们用到的不是很频繁,所以小伙伴们学习后可以存储以下,避免下次使用前找不到了。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试