zoukankan      html  css  js  c++  java
  • 面向对象之元类介绍

    标签(空格分隔): 元类介绍


    元类介绍:

    在正式介绍元类之前,大家储备一下知识:exec;

    • exec命令使用
      这个命令有三个参数:
      1.字符串形式的命令,(把字符串提取出来)
      2.全局作用域;(字典形式,如果不指定,默认使用globals())
      3.局部作用域,(字典形式,如果不指定默认locals)
    g={'x':1,
    'y':2}
    l={}
    exec("""
    global x,m
    x=10
    m=100
    
    z=3
    """,g,l)
    print(g)
    #print(l)
    
    • exec就是一个函数的执行;这里大家记住,后边我们会用到;

    python中一切皆是对象,对象可以怎么用?

    1.都可以被引用;x=obj
    2.第二点,都可以当做函数的参数传入;
    3.都可以当做函数的返回值
    4.都可以当做容器类型的元素;(就是盛多个值,例如字典,列表)

    class Foo:#类也是对象
        pass
    obj= Foo()
    print(type(obj))
    print(type(Foo))
    

    执行结果:
    <class main,Foo>
    <class 'type'>

    • 元类的概念:
      向上述的例子可以发现:Foo也是一个对象,在python中一切都是对象,从这里可以看出:类的类,就是被称为元类:<class 'type'>

    image.png-34.3kB
    image.png-50.4kB

    如下:是通过元类定义的一个chinese类:
    image.png-57.7kB

    • 一句话:元类就是原始的类,就是类的类
  • 相关阅读:
    NoSQL 数据库中的 CAP 理论
    JVM 相关概念
    Servlet 生命周期
    RabbitMQ
    消息队列概述
    05.类加载器深入解析及重要特性剖析
    LINUX笔记3(用户管理)
    LINUX笔记2(创建和编辑文本)
    修改httpd端口后,服务不能启动。
    LINUX笔记1(命令行和目录结构)
  • 原文地址:https://www.cnblogs.com/surewing/p/9775601.html
Copyright © 2011-2022 走看看