云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

python中函数setattr用法

在Python中,setattr()是一个内置函数,用于设置对象的属性,它接受三个参数:对象、属性名和属性值,如果属性名不存在于对象中,setattr()会创建一个新的属性并设置其值,如果属性名已经存在,setattr()会更新该属性的值。setattr()函数的用法如下:

(图片来源网络,侵删)
setattr(object, attribute, value)

object:表示要设置属性的对象。

attribute:表示要设置的属性名,可以是字符串或符号。

value:表示要设置的属性值。

下面通过几个示例来详细讲解setattr()函数的用法。

示例1:创建一个类,并使用setattr()设置属性

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
p = Person("张三", 25)
print("原始属性:", p.__dict__)
setattr(p, "name", "李四")
setattr(p, "age", 30)
setattr(p, "gender", "男")
print("更新后的属性:", p.__dict__)

输出结果:

原始属性: {'name': '张三', 'age': 25}
更新后的属性: {'name': '李四', 'age': 30, 'gender': '男'}

在这个示例中,我们首先创建了一个Person类,然后实例化一个对象p,接着,我们使用setattr()函数分别设置nameagegender属性,我们打印出对象p的属性字典,可以看到属性已经被成功设置。

示例2:动态添加方法

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
def say_hello(self):
    print("Hello, my name is", self.name)
p = Person("张三", 25)
print("原始方法:", [func for func in dir(p) if callable(getattr(p, func))])
setattr(p, "say_hello", say_hello)
print("更新后的方法:", [func for func in dir(p) if callable(getattr(p, func))])
p.say_hello()

输出结果:

原始方法: ['__init__']
更新后的方法: ['__init__', 'say_hello']
Hello, my name is 张三

在这个示例中,我们首先创建了一个Person类,然后实例化一个对象p,接着,我们定义了一个say_hello方法,我们使用setattr()函数将say_hello方法添加到对象p中,我们打印出对象p的方法列表,可以看到say_hello方法已经被成功添加,我们调用p.say_hello()方法,输出了预期的结果。

总结一下,setattr()函数在Python中是一个非常实用的内置函数,它可以帮助我们动态地设置对象的属性和方法,在实际开发中,我们可以利用这个函数来实现一些灵活的功能,例如动态添加属性和方法、修改已有属性的值等,希望本文能够帮助你更好地理解setattr()函数的用法。

打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《python中函数setattr用法》
文章链接:https://www.yunzhuji.net/jishujiaocheng/17145.html

评论

  • 验证码