为了账号安全,请及时绑定邮箱和手机立即绑定

Python 类继承中的参数有什么用?

Python 类继承中的参数有什么用?

吃鸡游戏 2022-07-05 19:22:09
在浏览 django_filters 库的源代码时,我发现了一种我以前从未见过的类声明语法:带参数的继承。我在官方 python 类教程中找不到解释。这是源代码,片段如下:class FilterSet(BaseFilterSet, metaclass=FilterSetMetaclass):     pass类定义中的metaclass=FilterSetMetaclass是做什么的?
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

基类列表中的关键字参数有两种用途。

  1. metaclass参数专门用于指示type要使用哪个元类(而不是 )来创建类。(在 Python 2 中,这是通过为语句__metaclass__主体中的类属性赋值来完成的。)class

    class语句本质上是对元类的调用。

    class Foo(metaclass=Bar):
        pass

    相当于Foo = Bar('Foo', (), {})。默认元类是type,即

    class Foo():
        pass

    相当于

    class Foo(metaclass=type):
        pass
  2. 其他关键字参数传递给__init_subclass__.

以上都是简化;有关更多详细信息,请参阅自定义类创建


查看完整回答
反对 回复 2022-07-05
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信