小编Rom*_*vin的帖子

如何在其元类的 __init__ 方法期间将方法绑定到类?

最终编辑

我的问题是我试图将部分绑定到一个类。不确定我是否应该删除此问题,或者更改其标题。

原始问题

我知道将方法绑定到其元类中的类的“正确”方法是将其添加到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)

我想绑定funClassinside MetaClass.__init__,以便调用

instance = Class()
instance.fun()
Run Code Online (Sandbox Code Playgroud)

将传递instancefun作为它的第一个参数。

编辑二

所以,显然问题出现是因为我试图绑定一个部分。不知道为什么这会导致问题。

稍后将确保,并在必要时更新/删除此问题。

python

5
推荐指数
1
解决办法
1387
查看次数

标签 统计

python ×1