zoukankan      html  css  js  c++  java
  • Python的元类简单介绍

    * 类型 和类

    在Python中,一切都是对象。类也是对象。所以一个类必须有一个类型


    注意:
    1.type Python3中所有的类都是通过type来创建出来的
    2.object:Python3中所有类的顶级父类都是object


    # 使用type创建类
    """
    1.第一个参数是类的名字 str 类型
    2.第二个参数是继承的父类 tuple 类型
    3.第三个参数类定义的属性,跟方法名 dict 类型
    """

    # 创建方法,放到第三个参数里面就可以,调用
    def func(self):
    print("你好")

    Test = type("Test", (object,), {"name": "张三","func":func})


    自定义元类

    1.自定义元类必须继承于type
    2.type创建类:三个参数

    """
    1.第一个参数是类的名字 str 类型
    2.第二个参数是继承的父类 tuple 类型
    3.第三个参数类定义的属性,跟方法名 dict 类型
    """
    例子:
    # 自定义元类
    class MyMetaClass(type):

      def __new__(cls, name, bases, namespace, *args, **kwargs):
      return super().__new__(cls, name, bases, namespace)

    # 通过自定义元类来创建类
    class Test(metaclass=MyMetaClass):
      name = "张三"


    # 父类指定元类,子类可以继承父类所指定的元类
    class MyClass(Test):
      pass

    t = Test()
    print(type(Test))
    结果:<class '__main__.MyMetaClass'>
    print(Test.__dict__)

  • 相关阅读:
    Charles 注册码
    pom.xml
    SpringMVC 表格跳转后显示${message}中的内容显示不出来
    使用IDEA 开发Spring,Maven-->并且部署到 tomcat
    Leetcode51 N后
    n queen
    八皇后问题
    Access提示“操作必须使用一个可更新的查询”的解决办法
    Win7系统卸载McAfee杀毒软件
    Win7(x64)升级到Win10
  • 原文地址:https://www.cnblogs.com/666666pingzi/p/10940998.html
Copyright © 2011-2022 走看看