最终编辑
我的问题是我试图将部分绑定到一个类。不确定我是否应该删除此问题,或者更改其标题。
原始问题
我知道将方法绑定到其元类中的类的“正确”方法是将其添加到classdict元类__new__方法中的参数中,并且通常您可以通过简单地将实例方法分配给类来将其绑定到类。
但是,在我的用例中,我需要在元类的__init__方法期间将一个方法绑定到一个类。问题是通常的分配方法不起作用。函数被分配给类,可以通过ClassName.function_name或访问class_instance.function_name,但它不绑定到类,第一个参数没有设置为self。
我想这是由于在元类期间类没有完全初始化__init__,但是有什么办法可以解决这个问题吗?
编辑:代码示例
鉴于:
def fun(self):
pass
class MetaClass(type):
def __init__(cls, name, bases, dct):
pass
class Class(object):
__metaclass__ = MetaClass
Run Code Online (Sandbox Code Playgroud)
我想绑定fun到Classinside MetaClass.__init__,以便调用
instance = Class()
instance.fun()
Run Code Online (Sandbox Code Playgroud)
将传递instance到fun作为它的第一个参数。
编辑二
所以,显然问题出现是因为我试图绑定一个部分。不知道为什么这会导致问题。
稍后将确保,并在必要时更新/删除此问题。
python ×1