这段代码有点棘手,所以您会发现其中一些问题并不奇怪。要理解它,你需要理解
closures
. 在python中有一些关于闭包的信息
this answer
.
init_instance
使用创建新实例
instance = make_instance(cls)
,然后它查找
init
方法
cls
,如果它存在,它称之为
初始化
方法与新实例以及所传递的任何内容
args
. 既不
make_instance
也不
初始化实例
修改
CLS
字典,或
attributes
字典被传递给
make_class
什么时候
CLS
被创造。实际发生的是
制作实例
创建新的
属性
它创建的实例的dict
get
和
set
实例DICT中的函数可以引用。
你的
make_my_class
定义没有多大意义。它有多余的
pass
声明,以及
make_class({'__init__': __init__})
因为你还没有定义
__init__
在任何地方,都需要一个函数来初始化类实例。
这是你的代码的修改版本。我创造了一个简单的
爱因斯坦
功能
my_class
,并添加了几个