博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习笔记:python异常的调用原理
阅读量:4980 次
发布时间:2019-06-12

本文共 843 字,大约阅读时间需要 2 分钟。

因为错误是class,捕获一个错误就是捕获到该class的一个实例。因此,错误并不是凭空产生的,而是有意创建并抛出的。Python的内置函数会抛出很多类型的错误,我们自己编写的函数也可以抛出错误。

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143191375461417a222c54b7e4d65b258f491c093a515000

 

看到python里面关于class的说法:

要创建一个class对象,type()函数依次传入3个参数:class的名称;继承的父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple的单元素写法;class的方法名称与函数绑定,这里我们把函数fn绑定到方法名hello上。通过type()函数创建的类和直接写class是完全一样的,因为Python解释器遇到class定义时,仅仅是扫描一下class定义的语法,然后调用type()函数创建出class。正常情况下,我们都用class Xxx...来定义类,但是,type()函数也允许我们动态创建出类来,也就是说,动态语言本身支持运行期动态创建类,这和静态语言有非常大 的不同,要在静态语言运行期创建类,必须构造源代码字符串再调用编译器,或者借助一些工具生成字节码实现,本质上都是动态编译,会非常复杂。

  

其中有一句:

通过type()函数创建的类和直接写class是完全一样的,因为Python解释器遇到class定义时,仅仅是扫描一下class定义的语法,然后调用type()函数创建出class。

 

以前一直没有想过java是怎么实现从class到instance的实现,也没有想过异常抛出是通过什么原理实现的。

哎,路还很长啊……

 

转载于:https://www.cnblogs.com/zhizhiyin/p/9675150.html

你可能感兴趣的文章
Raspbian开启root账户
查看>>
Active MQ 是什么?
查看>>
Flask-RESTful接口开发学习笔记一:实现简单的GET请求
查看>>
Developing for Multicore machines. Tasks in .NET 4.0 - Why/What/How?
查看>>
nvidia-smi命令执行很慢,如何改进
查看>>
很有趣的BIOS加载MBR到0X7C00的故事
查看>>
ESX VCENTER从模板快速布置IT应用
查看>>
leetcode-题2
查看>>
【CSS】使用CSS改变超链接样式
查看>>
angular.js测试框架protracotr自带的webdriver-manager启动问题“Invalid or corrupt jarfile”...
查看>>
程序是怎样跑起来的pdf
查看>>
sizeof(结构体)的计算
查看>>
Python学习笔记——基础篇【第六周】——shutil模块
查看>>
Sql中将字符串按分割符拆分
查看>>
.Net Core 使用EF Core方法
查看>>
为 Array 对象添加一个去除重复项的方法
查看>>
Spinner绑定Key value
查看>>
【JZOJ4783】【NOIP2016提高A组模拟9.15】Osu
查看>>
python学习之路(5)
查看>>
微服务(Microservices)和服务网格(Service Mesh)架构概念整理
查看>>