欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

pythonsetattr方法动态为类创建方法

时间:2023-05-22

setattr函数官方的解释是 用于设置属性值,该属性不一定是存在的。
其实它还可以为类设置 方法/函数

使用方法:

setattr([类名称], [需要创建的方法名],[方法的引用-方法所在的内存地址])

示例:

下面示例为a类创建了一个类变量cc和类方法dd

class a():name = "我是name值"def bb(self):print("我是bb方法")def make_def():def tool(self):print("我是make——def方法")return tooldef make_a():# 给a类创建一个类属性叫 cc 值为 sssssetattr(a, "cc", "ssssss")# 给a类创建一个类方法 叫dd 实际为 setattr(a, "dd", make_def())# 测试make_a()print(a().cc)aa = a()a().dd()

运行结果:

通过测试,我们可以看出在a类中,是有一个类方法叫做dd的,dd是从make_def中复制过来的 (而不是引用);通过下面测试可以证明,修改原方法make_def的__doc__属性后,复制函数dd的__doc__不随着改变,说明是直接复制值到新函数,不是内存地址引用

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。