首页 > 其他分享 >元类:Metaclass

元类:Metaclass

时间:2024-05-08 13:33:05浏览次数:11  
标签:classname Metaclass object 元类 superclasses type attributedict

可以是阿拉丁神灯,也可以是潘多拉魔盒。是底层代码逻辑。

type为对象的顶点,所有的对象都创建自type.
object为类继承的顶点,所有类都继承自object.

object是所有类的超类,type也是继承自object.
所有对象创建自type,object也是type的实例。

我们常用的代码:
class Myclass:
data=1

执行的是:
class = type(classname,superclasses,attributedict)
执行代码时会调用
type.new(typeclass,classname,superclasses,attributedict)
type.init(class,classname,superclasses,attributedict)

一旦一个类设置metaclass=。。。,它就不再有原生的type创建,而是调用。。。的__call__运算符重载。

正常父类不能对子类的属性进行操作,但是元类可以。元类,装饰器、类装饰器都是元编程。

标签:classname,Metaclass,object,元类,superclasses,type,attributedict
From: https://www.cnblogs.com/zenopan101861/p/18179475

相关文章

  • 使用元类实现Django的ORM
    一、ORM基本介绍ORM是python编程语言后端web框架Django的核心思想,“ObjectRelationalMapping”,即对象-关系映射,简称ORM。二、实现目标创建一个实例对象,用创建它的类名当做数据表名,用创建它的类属性对应数据表的字段,当对这个实例对象操作时,能够对应MySQL语句如图:三、......
  • python元类
    python元类classCar(object):def__init__(self,name):print('init')self.name=namedef__new__(cls,*args,**kwargs):print('new')returnsuper().__new__(cls)obj=Car('雪佛兰')#输......
  • Mixins机制和元类
    一、Mixins机制Mixins机制是一种在面向对象编程中用于代码复用的灵活机制,通过将特定功能的代码块注入到类中,增强了类的功能,同时保持了类的层次结构的简洁性和灵活性。案例:定义一个交通工具类,民航飞机和直升飞机、汽车都属与交通工具,继承交通工具类。但是汽车不会飞,将fly的方法......
  • .NET的基元类型(Primitive Type)
    一、.NET源代码编译过程由于Microsoft在.NET平台上提供3种语言–C#、F#和VisualBasic,所以, .NET被设计成本质上并不知道所运行的程序代码到底是哪种语言,因为.NET只认识IL语言。IL语言即 IntermediateLanguage(微软中间语言)。为了说清楚整个事件的来龙去脉,我们以C#源代......
  • 面向对象之元类
    面向对象之元类一、什么是元类产生已知类的类就叫做元类,typeclassPerson(object):...deffunc():...people=Person()#产生对象的是类print(type(people))#<class'__main__.Person'>print(type(func))#<class'function'>#产生类的就是元类p......
  • Python面向对象之元类
    元类【一】概要元类是类的类,它用于定义其他类。在Python中,一切皆对象,包括类。而元类就是用来创建这些类的“类”。类是对象:在Python中,类本身也是一个对象,而元类就是用来创建这些类的对象。【二】常见用法type函数:在Python中,type函数不仅可以返回对象的类型,还可以用于创建......
  • python面向对象之元类
    一、元类介绍什么是元类呢?一切源自于一句话:python中一切皆为对象。让我们先定义一个类,然后逐步分析classStanfordTeacher(object):school='Stanford'def__init__(self,name,age):self.name=nameself.age=agedefsay(self):prin......
  • 面向对象之元类
    【一】常用的魔法方法【1】初始化对象的属性__init__【二】元类【1】什么是元类一切源于一句话:Python中一切皆对象八大基本数据类型是对象类实例化得到的对象也是对象其实类本身也是一种对象classHuman:def__init__(self,name,age):self.name=name......
  • 元类
    元类(一)什么是元类创建出类的类就是元类"""元类"""#什么是元类#元类:就是产出类的类-----创建出类的类----type#在python中一切皆对象classPerson(object):def__init__(self,name):self.name=name#实例化类得到对象p=Person(name='syh')#查看实例......
  • python之元类
    【什么是元类】元类:就是用来实例化产生类的类关系:元类-----实例化-----》类(People)-----实例化-----》对象(obj)一切都来源于一句话:一切皆为对象【演示】   【如何自定义元类来控制类的产生】   【__call__方法】  【自定义元类控制类的调用=====》......