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. 数据库配置下拉框没有数据库可选
  2. 2009年的强悍流行语~
  3. Spring命名空间引入方法
  4. 作品分享_作品分享 | No. 1
  5. 计算机科学与技术的感性认识,对计算机科学与技术学科的简单认识
  6. SeekBar的用法和自定义滑块的样式
  7. 偏标记(partial)学习
  8. linux下设置好环境变量要重启计算机
  9. grid@m3#39;s password: Permission denied, please try again.
  10. 分享几个java小程序代码
  11. 涂抹oracle教你,《涂抹Oracle-三思笔记之一步一步学Oracle》出炉手记
  12. Python金融大数据分析——第11章 统计学(2)投资组合优化 笔记
  13. html游戏官网制作 英雄联盟LOL游戏网站设计与实现 (web课程与设计)
  14. C. Alice and the Cake
  15. JQuery制作飘落的树叶动画效果
  16. Perl CGI重构原则
  17. kaggle比赛——Jigsaw Rate Severity of Toxic Comments(NLP类型)——分析获奖模型笔记
  18. 表情包组件(vue)
  19. 代理服务器软件_CCProxy
  20. Ghost超级助手 1.00 beta II

热门文章

  1. java基础:面向对象编程(上)28-实验2-银行储蓄客户
  2. Spring事务传播行为
  3. 多人编辑同一个md_HackMD:支持协作的超级好用在线Markdown编辑器
  4. 遭遇木马Trojan.PSW.ZhengTu.dm、Trojan.PSW.LMir.atb
  5. vulnhub之CH4INRULZ渗透测试实战
  6. excel网页服务器端,Excel服务――体系架构
  7. Mac - 查看/关闭 端口占用的方法
  8. 新概念英语1册67课
  9. 残差神经网络为什么可以缓解梯度消失?
  10. java随机数生成_java实现随机数生成器