1. 创建一个基本的类

class Foo(object):def __init__(self, name):self.name = namedef __new__(cls, *args, **kwargs):data = object.__new__(cls)return data

2. 根据类创建对象

  • 执行类的new方法,创建对象〔空对象)。【构造方法】
  • 执行类的init方法,初始化对象

2.1 问题:类是由谁创建的?

  • 类默认是由type创建。

2.2 类的创建

  • 传统/非传统
  • 传统方式创建类(直观)
class Foo(object):v1 = 123def func(self):return 666print(Foo)  # <class '_main_.Foo" >m" "
# 非传统方式〔一行)#1.创建类型
# -类名#-继承类#-成员def do ( self ):Fa = type("Foo", (object,), {"v1 ": 123, "func": lambda self: 666})
# 2.根据类创建对象
obj = Fa()
print(Fa)  # <class '_main_.Foo" >

2.3 type(元类)创建类

class MyType(type):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)def __new__(cls, *args, **kwargs):# 创建类new_cls = super().__new__(cls, *args, **kwargs)return new_clsdef __call__(self, *args, **kwargs):# 1.调用自己那个类的__new__方法去创建对象empty_object = self.__new__(self)# 2.调用你自己那个类__init__放发去初始化self.__init__(empty_object, *args, **kwargs)return empty_object# 假设Foo是一个对象,
# 由MyType创建。#Foo类其实是MyType的一个对象。
# #Foo() --> MyType对象()
class Foo(object, metaclass=MyType):def __init__(self, name):self.name = namedef __call__(self, *args, **kwargs):print("自己")v1 = Foo('XX')  # type._call__v1()

python---元类相关推荐

  1. python 元类工厂模式_Python进阶丨如何创建你的第一个Python元类?

    摘要:通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类. Python元类设置类的行为和规则.元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一. ...

  2. 如何创建你的第一个Python元类?

    Python元类设置类的行为和规则.元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一.通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类.本文介绍 ...

  3. Python进阶丨如何创建你的第一个Python元类?

    摘要:通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类. Python元类设置类的行为和规则.元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一. ...

  4. python元类_Python元类

    python元类 Welcome to today's tutorial on python metaclass. We all know that python is an object orien ...

  5. python元类_Python基础:元类

    一.概述 Python虽然是多范式的编程语言,但它的数据模型却是 纯面向对象 的.与那些仅在语法层面声称纯OO的编程语言(如Java)相比,Python的这种纯粹性更加深入骨髓. 在Python的世界 ...

  6. Python元类详解

    文章目录 Python元类详解 Python谜团 元类的本质 调用一个类时发生了什么 再探元类 自定义元类 彩蛋:跳过python解释器 Python元类详解 元类比99%的用户所担心的魔法要更深,如 ...

  7. python元类深入理解

    1.python 中的类 在python中,类也是一个对象,只不过这个对象拥有生成实例的能力,我们一般使用class XXX来定义一个类,在python解释器执行到这个地方的时候会自动创建出这个对象, ...

  8. 深入理解 python 元类

    一.什么的元类 # 思考: # Python 中对象是由实例化类得来的,那么类又是怎么得到的呢? # 疑问: # python 中一切皆对象,那么类是否也是对象?如果是,那么它又是那个类实例化而来的呢 ...

  9. python元类编程_python元类编程

    什么叫元类?   年轻人先不要在意这些细节.我们一步一步的来! 001. oop的世界里有一句话 "万物皆对象" classPerson(object): name=Noneif ...

  10. python元类的概念_Python中的元类编程 | 学步园

    过去有这样的概念,一直没有深究它的意义.今天同事问到,刚好也好好了解下. #===============================================Python中的元类编程=== ...

最新文章

  1. python3在线手册_Python 3 手册
  2. 首个镜子分割网络问世,大连理工、鹏城实验室、香港城大出品 | ICCV 2019
  3. 数据库系列之mysql 自定义函数function,函数和存储过程的区别
  4. u3d文件上传至服务器,unity 上传图片到云服务器
  5. 李洪强经典面试题146-网络
  6. 开发转测试没人要_前端开发,测试,后端,该如何选择?
  7. JDK1.8使用Dubbo时需注意
  8. Delphi在代码编辑栏按回车无法换行
  9. [php]php内存管理
  10. WPS安装office自定义项安装期间出错
  11. 找不到项目 该项不在计算机中,Win7提示“找不到该项目”怎么办 Win7提示“找不到该项目”解决方法...
  12. Python全栈工程师特训班第四期-直播回放-CSDN就业班-专题视频课程
  13. matlab为数据加表头,matlab xlswrite 表头
  14. 前端需要了解的色彩知识
  15. 笔记本电脑计算机目录下无法显示视频设备,笔记本摄像头怎么开 win7笔记本摄像头打开方法...
  16. Flutter上传多张图片
  17. 著名歌唱家大衣哥太豪横了,参加商演被主办方请到五星级酒店就餐
  18. 点击化学DBCO修饰药物(DBCO-PEG-雷替曲塞,甲氨喋呤MTX,培美曲塞,磺胺地索辛)
  19. open edx_Open edX和OpenStack用于复杂的学习环境
  20. IP和Soc的概念、安全设计、验证和调试

热门文章

  1. 网站部署到其他服务器但无权修改,web项目部署到服务器遇到的问题
  2. 4月10号软件资讯更新合集.....
  3. input输入的语法和特点
  4. mysql存储函数if,详解数据库_MySQL: mysql函数
  5. golang单元测试框架实践
  6. 浏览器F12查看项目源码
  7. 计算机基础知识重点汇总
  8. Office安装报错:停止,应等待安装 Office 2016
  9. word 2010中设置默认粘贴为 只保留文本粘贴
  10. ADE7878ACPZ-RL引脚分析