python中delattr是什么

python中delattr是什么,第1张

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('小明', 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 "", line 1, in 
    a.name
AttributeError: 'A' object has no attribute 'name'
 
>>> delattr(a,'name') #再删除会报错
Traceback (most recent call last):
  File "", line 1, in 
    delattr(a,'name')
AttributeError: name

以上就是python中delattr的一些基本用法,不过平时我们用到的不是很频繁,所以小伙伴们学习后可以存储以下,避免下次使用前找不到了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3013806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-28
下一篇 2022-09-28

发表评论

登录后才能评论

评论列表(0条)

保存