Python delattr() 函数用法
2023-09-17 22:27:32
如果对象允许,delattr()
方法将从对象中删除命名属性。
语法:
delattr(object, name)
参数:
- 对象:要从中删除属性的对象。 名称
- :要作为字符串删除的属性名称。
返回值:
没有。
下面的示例从给定对象中删除属性。
class student:
name = 'John'
age = 25
print(dir(student))
delattr(student, 'age')
print("After the delattr() method is called:")
print(dir(student))
输出:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__',
'__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'name']
After the delattr() method is called:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__',
'__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__',
'__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__',
'name']
上面,dir(student)
输出包含列表中的age
,但是在调用delattr(student, 'age')
后,它会删除age
属性,因此列表中不存在。
或者,可以使用 del
关键字而不是 delattr()
方法来删除属性。
class student:
name = 'John'
age = 25
del student.age
print(dir(student))
输出:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__',
'__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__',
'__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__',
'name']