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

    • 一句话:元类就是原始的类,就是类的类
  • 相关阅读:
    vue2手写vuex
    200.岛屿数量(DFS M-岛屿系列)
    739.每日温度(栈M)
    150.逆波兰表达式求值(栈M)
    20.有效的括号(栈L)
    前端性能优化与SEO优化整理
    Typescript:类型断言
    如何在浏览器中快速调试Typescript
    Typescript:枚举
    Typescript:接口
  • 原文地址:https://www.cnblogs.com/surewing/p/9775601.html
Copyright © 2011-2022 走看看