欢迎光临散文网 会员登陆 & 注册

关于元类的部分应用

2023-03-05 20:40 作者:韭菜怎么卖  | 我要投稿


    这样可以控制A这个类的atrribute,从而控制其实例化时的object可以调用的方法。不过这个方式在IDE中还是会显式提示可以调用func3,实际执行时会报错has no attribute。

    实际上定义class A时先执行的是new方法,所以如果希望定义时传参,要先在new里面写对应的参数,然后还必须在init里面也写上(因为似乎在调用new的过程中,紧接着就会将参数原封不动传递给元类的init)。

    在写元类init时可以不用return,用了反而会说init cannot return。

    在继承时可以采用type也可以用super,但是最核心的是,不同的方法有时候需要传参self和cls,具体区别参考高天的视频。

    init和new的区别仅仅在于是在创建class A这个对象前还是后对其属性进行增添还是修改(区别很模糊,最好写在new里,因为我尝试写在init里提示我__init_subclass不接受kwargs,所以感觉还要重写__init_subclass__而不是__init__)。

关于元类的部分应用的评论 (共 条)

分享到微博请遵守国家法律