Python setattr 用法详解及示例
setattr
是Python内置函数之一,用于动态设置对象的属性值。其语法如下:
setattr(object, name, value)
其中,object
是要设置属性值的对象,name
是属性的名称,value
是属性的值。
下面是三个setattr
的示例:
- 示例一:设置对象的属性值
class Person:
def __init__(self, name):
self.name = name
person = Person("Alice")
setattr(person, "age", 25)
print(person.age) # 输出: 25
在示例一中,我们创建了一个Person
类的实例person
,并通过setattr
动态设置了它的age
属性的值为25。最后打印出person.age
的值,可以看到属性值已经成功设置。
- 示例二:动态修改属性值
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 25)
print(person.age) # 输出: 25
setattr(person, "age", 30)
print(person.age) # 输出: 30
在示例二中,我们创建了一个Person
类的实例person
,并通过setattr
修改了它的age
属性的值。可以看到,初始时person.age
的值为25,修改后为30。
- 示例三:动态设置对象的方法
class Person:
def __init__(self, name):
self.name = name
def say_hello(self):
print("Hello, {}".format(self.name))
person = Person("Alice")
setattr(person, "greet", say_hello)
person.greet() # 输出: Hello, Alice
在示例三中,我们创建了一个Person
类的实例person
,并定义了一个say_hello
函数。通过setattr
将say_hello
函数动态设置为person
的方法greet
,然后调用person.greet()
来执行该方法。最后,会输出Hello, Alice
。