📜  检查对象属性python(1)

📅  最后修改于: 2023-12-03 14:55:46.067000             🧑  作者: Mango

检查对象属性 Python

在 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() 可以删除指定对象的指定属性。这些函数使用简单,但是能够大大提高我们的编程效率。