分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

元类metaclass(一切都是对象)

发布时间:2023-09-06 02:04责任编辑:赖小花关键词:classmeta

Python类哲学:

1、一切都是对象。(everything is object)

2、所有对象object都是由类class实例化出来的。比喻:所有的人(对象)都有自己的妈(类),都是他妈生的。参照上一条,当妈的也是人也有必然有自己的妈。

3、那问题来了,最早的妈是谁,她又是谁生的?

答:人类最早的妈是女娲,但在python里最早的妈名为type,外号metaclass,又称元类。type的妈是谁,还是type,也就是type自己生了自己,type是万物本源。

4、基类object又是什么?

答:基类是所有类的父类,py3中所有的类都默认继承了基类,包括元类type。比喻:所有当妈的都有一个公共的爹,都继承了这个爹的基因。

5、怎么查看类的继承关系,即一个女人如何找到自己的爹?

答:print(类.__mro__)

6、如何通过对象找到创建它的类,即如何找到自己的妈?

答:三种方法,一是用__class__属性,对象.__class__即为创建它的类。二是用isinstance()方法,判断对象和类的关系。三是用type()方法,输出结果与第一种方法类似。

class People: ???def __init__(self,name,age): ???????self.name = name ???????self.age = age ???????print(‘%s今年%d岁了‘%(name,age)) ???def __call__(self, *args, **kwargs): ???????print(self.__dict__,type(self))

这个类里有两个内置方法:__init__,__call__

这两个都是绑定对象方法,当对象调用含有self参数的方法时,不需要手工写这个参数,自动传对象自己本身。

__init__()是在实例化过程中自动执行。对象被调用则会执行类中的__call__方法。

元类metaclass(一切都是对象)

原文地址:https://www.cnblogs.com/huang99882008/p/9313315.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved