因为错误是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的实现,也没有想过异常抛出是通过什么原理实现的。

哎,路还很长啊……

最新文章

  1. 为WLW开发Latex公式插件
  2. 【noip 2016】 蚯蚓(50分)(earthworm)
  3. iOS之常用宏定义
  4. CSS之伪类
  5. apache commons math 示例代码
  6. HDFS中高可用性HA的讲解
  7. 优秀开源项目的svn地址
  8. 学习unity的第一个小游戏(Roll the ball)的笔记
  9. 使用diff和patch指令生成文件差异和还原文件
  10. AJAX跨域的常见方法
  11. node.js之调试器
  12. UI设计基础知识和JavaScript
  13. shell编程/字库裁剪(3)——验证
  14. BZOJ4554 - [TJOI2016&HEOI2016]游戏
  15. windows server 2012 R2汉化 -- 玩转Microsoft Azure
  16. 使用 ASP.NET Core MVC 创建 Web API(四)
  17. java后端服务器读取excel将数据导入数据库
  18. Kafka监控KafkaOffsetMonitor【转】
  19. ERP采购业务(三十七)
  20. C#轻量级日志监控器EasyLogMonitor

热门文章

  1. Code::Blocks debug程序
  2. flask 保存文件到 七牛云
  3. Luogu5280 ZJOI2019线段树(线段树)
  4. Pearls POJ - 1260 dp
  5. jsp大学课程hi实验:分页在线测评(session的使用)
  6. Django+Xadmin打造在线教育系统(一)
  7. session的基本原理及安全性
  8. Min_25 筛小结
  9. zabbix监控概念
  10. 【BZOJ4891】[TJOI2017]龙舟(Pollard_rho)