Python 使用type来定义类的实现
我们先来看一张图
仔细观察:
我们使用 class 定义了 Class类,然后实例化给 cls
观察cls的类型,它的类型指向 Class
那么Class的类型指向谁呢?指向type
仔细思考,会不会Class是由type来定义的呢?
是的,其实Class是由 type来声明。
我们上代码测试一下。
可以看到,type需要三个参数,你可以理解为:
第一个参数: 类名
第二个参数:继承
第三个参数:私有化
问题来了,那如果定义私有函数呢?
可以看到,先定义一个函数,然后再用type定义类。
其中:
get_author : 私有函数名
问题又来了,如果去继承呢?
OK,基本情况就是这样。
以上这篇Python 使用type来定义类的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python使用type关键字创建类步骤详解
Python使用type关键字创建类 打开命令行窗口,输入python,进入python交互环境 python 一般创建类使用class关键字即可,测试命令如下: class Coo: pass obj1 = Coo() print (obj1) c = Coo obj2 = c() print (obj2) type关键字可以动态的创建类,接收参数(类名,父类元组,属性的字典),如创建一个类,没有父类,没有属性,命令如下: Test = type('Test',(),{}) print (Te
-
python原类、类的创建过程与方法详解
今天为大家介绍一下python中与class 相关的知识-- 获取对象的类名 python是一门面向对象的语言,对于一切接对象的python来说,咱们有必要深入的学习与了解一些知识 首先大家都知道,要获取一个对象所对应的类,需要使用class来进行检索. 但如果我们只是一个简单的赋值语句,能这么使用么?让我们看下下面的代码: num=10 string='abc' class MainClass: pass p=MainClass() print(num.__class__) # output:
-
浅谈Python type的使用
判断类型 在Python中我们可以使用type进行类型的判断 #我们想看一个对象的的类型可以这样 class A: pass a = A() type(a) == A #True #type(obj) 会返回创建a的类型 创建对象 #这个简单,因为type会返回对象的类型,我们可以通过返回的类型创建对象 type(a)()#如果构造函数有参数则应传递相应参数 #上述语句可以分解为 A = type(a) A() 创建类 看到创建类这个词的时候不知道type使用的朋友会问type怎么能创建类?下面
-
python中实现定制类的特殊方法总结
看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()函数. 除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮助我们定制类. __str__ 我们先定义一个Student类,打印一个实例: 复制代码 代码如下: >>> class Student(object): ... def __init
-
Python 使用type来定义类的实现
我们先来看一张图 仔细观察: 我们使用 class 定义了 Class类,然后实例化给 cls 观察cls的类型,它的类型指向 Class 那么Class的类型指向谁呢?指向type 仔细思考,会不会Class是由type来定义的呢? 是的,其实Class是由 type来声明. 我们上代码测试一下. 可以看到,type需要三个参数,你可以理解为: 第一个参数: 类名 第二个参数:继承 第三个参数:私有化 问题来了,那如果定义私有函数呢? 可以看到,先定义一个函数,然后再用type定义类. 其中:
-
Python 使用元类type创建类对象常见应用详解
本文实例讲述了Python 使用元类type创建类对象.分享给大家供大家参考,具体如下: type("123") 可以查看变量的类型;同时 type("类名",(父类),{类属性:值,类属性2:值}) 可以创建一个类. 在Python中不建议一个函数具有不同的功能(重载):type()具有不同的功能是为了兼容之前的版本. 类可以创建实例对象,类对象是由元类创建的. (元类创建类,类创建实例对象) type就是元类(type本质上就是一个类) demo.py(用元类t
-
Python使用type动态创建类操作示例
本文实例讲述了Python使用type动态创建类操作.分享给大家供大家参考,具体如下: 使用type动态创建类 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的. 下面看一个例子: # 定义一个Person类 class Person(object): def __init__(self): pass def say(self): print('say hello') p = Person() p.say() # 输出 say hello print(ty
-
python 使用元类type创建类
目录 1.type动态创建类 1.1 语法格式 1.2 案例1:使用type创建类 1.3 案例2:使用type创建带有属性(方法)的类 1.4 案例3:使用type动态创建一个继承指定类的类 前言: 通常我们创建类都是使用class 类名,但是小伙伴们有没有想过,类是由谁来创建的呢,python中常说的万物皆对象,对象是由类创建的,那类本身也可以看做是对象,类可以由元类type创建 1.type动态创建类 1.1 语法格式 type(类名,由父类名称组成的元组(可以为空),包含属性的字典(名称
-
python中的type,元类,类,对象用法
目录 type,元类,类,对象 简单描述 类的生成方式 元类 元类type学习总结 type的作用是干什么呢? type,元类,类,对象 简单描述 1.type是python内建元类,新建的元类需要继承type 2.元类用来创建类,类用来创建对象 类的生成方式 传统定义通过声明关键字class #1.创建Person类 #2.继承object #3.拥有属性eat class Person(object): def eat(self,food="rice"):
-
在Python中使用元类的教程
type() 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的. 比方说我们要定义一个Hello的class,就写一个hello.py模块: class Hello(object): def hello(self, name='world'): print('Hello, %s.' % name) 当Python解释器载入hello模块时,就会依次执行该模块的所有语句,执行结果就是动态创建出一个Hello的class对象,测试如下: >>> fro
-
python中的元类metaclass详情
目录 动机 从一个问题引出 MetaClass Metaclass 编程 动机 python语言因为工作偏向于 AI ,所以对于这门语言还停留在表面,对于 python 深层并没有接触到. 今天来聊一聊元类(metaclass) ,想必大多数人都或多或少听过元编程这个词,但是对于元编程是什么以及如何应用元编程熟悉应该不多,在 python 中的 metaclass 就是帮助 developer 实现元编程,因此产生一个想法 最近时间还算宽裕,所以想要文章认真弄一弄 从一个问题引出 MetaCla
-
Python深入浅出分析元类
目录 一.类和对象 二.type类 三.元类Metaclass 四.自定义一个元类 一.类和对象 Python属于动态类型的语言,而动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时创建的,而是运行时动态创建的,比方说我们要定义一个 Person 的class,就写一个 Person.py 模块: # -*- coding: utf-8 -*- # 文件名 : Person.py class Person(object): def say(self, s='元类'): print('今
-
深入理解Python中的元类(metaclass)
译注:这是一篇在Stack overflow上很热的帖子.提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程.于是e-satis同学给出了神一般的回复,该回复获得了985点的赞同点数,更有人评论说这段回复应该加入到Python的官方文档中去.而e-satis同学本人在Stack Overflow中的声望积分也高达6
随机推荐
- Java实现的文本字符串操作工具类实例【数据替换,加密解密操作】
- Windows上PostgreSQL安装配置教程
- PostgreSQL安装、配置及简单使用方法
- 比较全面的C 、Java、JavaScript中的正则表达式详解
- javascript 函数调用规则
- MySql中把一个表的数据插入到另一个表中的实现代码
- Mysql启动报ERROR:2002的分析与解决
- MYSQL使用正则表达式过滤数据
- js表单元素checked、radio被选中的几种方法(详解)
- 利用C/C++编写node.js原生模块的方法教程
- SQL查询字段被包含语句
- 基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
- 本地计算机无法启动Apache故障处理
- js实现用户输入的小写字母自动转大写字母的方法
- Hibernate框架数据分页技术实例分析
- JavaScript 乱码问题
- Android实现图片异步加载及本地缓存
- c#中Empty()和DefalutIfEmpty()用法分析
- linux下access函数的用法介绍
- SpringMVC上传文件的两种方法