栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python setattr方法动态为类创建方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python setattr方法动态为类创建方法

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

使用方法:
	setattr([类名称], [需要创建的方法名],[方法的引用-方法所在的内存地址])
示例:
下面示例为a类创建了一个类变量cc和类方法dd
class a():
	name = "我是name值"

	def bb(self):
		print("我是bb方法")

def make_def():
	def tool(self):
		print("我是make——def方法")
	return tool
def make_a():
	# 给a类创建一个类属性叫 cc 值为 ssss
	setattr(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__不随着改变,说明是直接复制值到新函数,不是内存地址引用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/740208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号