python中delattr是什么

634次阅读
没有评论
python中delattr是什么

在我们使用内置函数的时候,有时候需要添加属性,有时候要对属性进行删除的操作。前者我们使用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免费测试

相关文章:

版权声明:wuyou2021-05-16发表,共计1422字。
新手QQ群:570568346,欢迎进群讨论 Python51学习