📅  最后修改于: 2023-12-03 14:55:46.067000             🧑  作者: Mango
在 Python 中,我们可以使用内置的函数来检查对象属性。这些属性可以包括变量、方法、类、模块等。本文将简要介绍如何使用 Python 内置函数检查对象属性。
使用 hasattr()
函数可以检查一个对象是否具有指定属性。它的语法如下:
hasattr(object, name)
其中,object
是要检查的对象,name
是要检查的属性名。若该对象具有指定属性,则返回 True
,否则返回 False
。
下面是一个例子:
class MyClass:
x = 123
def my_func(self):
pass
obj = MyClass()
if hasattr(obj, 'x'):
print('obj 有 x 属性')
else:
print('obj 没有 x 属性')
if hasattr(obj, 'my_func'):
print('obj 有 my_func 属性')
else:
print('obj 没有 my_func 属性')
输出:
obj 有 x 属性
obj 有 my_func 属性
使用 getattr()
函数可以获取一个对象属性的值。它的语法如下:
getattr(object, name[, default])
其中,object
是要获取属性值的对象,name
是要获取的属性名,default
是可选参数,表示当指定属性不存在时的默认返回值。
下面是一个例子:
class MyClass:
x = 123
obj = MyClass()
print(getattr(obj, 'x')) # 输出 123
print(getattr(obj, 'y', '默认值')) # 输出默认值
注:在此例中,getattr(obj, 'y', '默认值')
会返回默认值 '默认值'
,因为 obj
对象中不存在名为 'y'
的属性。
使用 setattr()
函数可以为一个对象设置指定属性的值。它的语法如下:
setattr(object, name, value)
其中,object
是要设置属性值的对象,name
是要设置的属性名,value
是要设置的属性值。
下面是一个例子:
class MyClass:
x = 123
obj = MyClass()
setattr(obj, 'x', 456)
print(obj.x) # 输出 456
使用 delattr()
函数可以删除一个对象的指定属性。它的语法如下:
delattr(object, name)
其中,object
是要删除属性的对象,name
是要删除的属性名。
下面是一个例子:
class MyClass:
x = 123
obj = MyClass()
delattr(obj, 'x')
if hasattr(obj, 'x'):
print('obj 有 x 属性')
else:
print('obj 没有 x 属性')
输出:
obj 没有 x 属性
在 Python 中,我们可以使用四个内置函数来检查、获取、设置和删除对象属性。hasattr()
可以检查指定对象是否具有指定属性;getattr()
可以获取指定对象的指定属性的值;setattr()
可以为指定对象设置指定属性的值;delattr()
可以删除指定对象的指定属性。这些函数使用简单,但是能够大大提高我们的编程效率。