关于python的元类的问题
天蓬老师
天蓬老师 2017-04-18 09:59:07
0
3
355
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답 (3)
大家讲道理

metaclass必须要从type继承。上面的Model在Python2.7下有语法错误,在Python3中可以产生Model Class但无法进行实例话。在Python3中可以顺利产生Model Class的原因我猜想可能是 “object是type的基类”的原因。

    Ty80

    改成这样,new方法里object改成type.

    class BBB(type): def __new__(cls, name, bases, attrs): print("BBBBB") return type.__new__(cls, name, bases, attrs) class Model(): __metaclass__ = BBB
      阿神

      这是我修改过的代码:
      python2下通过

      # coding=utf-8 class ModelMetaclass(type): def __new__(cls, name, bases, attrs): print("ainia") return type.__new__(cls, name, bases, attrs) class BBB(type): def __new__(cls, name, bases, attrs): print("BBBBB") return type.__new__(cls, name, bases, attrs) class Model: __metaclass__ = BBB class Model2: __metaclass__ = ModelMetaclass

      关于python的元类解释,推荐你看一篇文章,讲解非常清楚,
      传送门: 深刻理解Python中的元类(metaclass)

        최신 다운로드
        더>
        웹 효과
        웹사이트 소스 코드
        웹사이트 자료
        프론트엔드 템플릿
        회사 소개 부인 성명 Sitemap
        PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!