本系列将会陆续整理分享一些的Python内置函数。
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/11x9_wCZ3yiYOe5nVcRk2CQ?pwd=mnsj
提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Python_built-in_functions
setattr(object, name, value)
-
object:要设置属性的对象; -
name:是要设置的属性名称,以字符串形式提供; -
value:是要赋给属性的值。
返回值:
下面是一些使用 setattr() 函数的示例:
-
示例 1:设置对象的属性值
例如,为实例 p 添加一个 age 属性并赋值、修改原有name属性值:
class Person:
def __init__(self, name):
self.name = name
p = Person("Alice")
# 设置新属性
setattr(p, 'age', 30)
# 修改现有属性
setattr(p, 'name', 'Bob')
# 使用 vars() 函数获取类的__dict__ 属性
vars(p)
# 输出: {'name': 'Bob', 'age': 30}
-
示例 2:设置对象的方法
setattr() 函数可以用于设置对象的任何属性,包括方法。如果要设置对象的方法,可以将方法作为函数对象传递给setattr()。
例如,Calculator 类中包含一个add() 方法,然后使用setattr()函数为其添加一个sub()方法:
-
定义函数sub:定义了一个普通的函数sub,它接受self、x和y作为参数;
-
使用__get__绑定方法:通过sub.__get__(calculator, Calculator)将sub函数绑定到calculator实例上,使其成为一个实例方法。__get__方法是Python中用于实现方法绑定的特殊方法;
-
调用方法:现在calculator实例有了sub方法,可以像调用其他实例方法一样调用它。
class Calculator:
def add(self, x, y):
return x + y
calculator = Calculator()
# 定义一个函数来作为 sub 方法
def sub(self, x, y):
return x - y
# 使用 __get__ 将函数绑定到实例上
setattr(calculator, "sub", sub.__get__(calculator, Calculator))
result1 = calculator.add(5, 3)
result2 = calculator.sub(5, 3)
print(result1)
# 输出: 8
print(result2)
# 输出: 2


本篇文章来源于微信公众号: 码农设计师