Python导入模块,Python import用法(超级详细)

使用Python进行编程时,有些功能没必须自己实现,可以借助Python现有的标准库或者其他人提供的第三方库。比如说,在前面章节中,我们使用了一些数学函数,例如余弦函数cos()、绝对值函数fabs()等,它们位于Python标准库...

什么是模块,Python模块化编程(入门必读)

Python提供了强大的模块支持,主要体现在,不仅Python标准库中包含了大量的模块(称为标准模块),还有大量的第三方模块,开发者自己也可以开发自定义模块。通过这些强大的模块可以极大地提高开发者的开发效率。 那么,模块...

Python traceback模块:获取异常信息

除了使用sys.exc_info()方法获取更多的异常信息之外,还可以使用traceback模块,该模块可以用来查看异常的传播轨迹,追踪异常触发的源头。 下面示例显示了如何显示异常传播轨迹:classSelfException(Exception):...

Python sys.exc_info()方法:获取异常信息

在实际调试程序的过程中,有时只获得异常的类型是远远不够的,还需要借助更详细的异常信息才能解决问题。 捕获异常时,有2种方式可获得更多的异常信息,分别是:使用sys模块中的exc_info方法;使用traceback模块...

Python raise用法(超级详细,看了无师自通)

在前面章节的学习中,遗留过一个问题,即是否可以在程序的指定位置手动抛出一个异常?答案是肯定的,Python允许我们在程序中手动设置异常,使用raise语句即可。 读者可能会感到疑惑,即我们从来都是想方设法地让程序正常运...

Python try except finally:资源回收

Python异常处理机制还提供了一个finally语句,通常用来为try块中的程序做扫尾清理工作。 注意,和else语句不同,finally只要求和try搭配使用,而至于该结构中是否包含except以及else,对于finally不是必须的...

Python try except else详解

在原本的tryexcept结构的基础上,Python异常处理机制还提供了一个else块,也就是原有tryexcept语句的基础上再添加一个else块,即tryexceptelse结构。 使用else包裹的代码,只有当try块没有捕获到任何异常...

Python try except异常处理详解(入门必读)

Python中,用tryexcept语句块捕获并处理异常,其基本语法结构如下所示: try: 可能产生异常的代码块 except[(Error1,Error2,...)[ase]]: 处理异常的代码块1 except[(Error3,Error4,...)[as...

什么是异常处理,Python常见异常类型(入门必读)

开发人员在编写程序时,难免会遇到错误,有的是编写人员疏忽造成的语法错误,有的是程序内部隐含逻辑问题造成的数据错误,还有的是程序运行时与系统的规则冲突造成的系统错误,等等。 总的来说,编写程序时遇到的错误可大致分...

Python @函数装饰器及用法(超级详细)

前面章节中,我们已经讲解了Python内置的3种函数装饰器,分别是@staticmethod、@classmethod和@property,其中staticmethod()、classmethod()和property()都是Python的内置函数。 那么,函数装饰器的工作原理...

Python生成器详解

前面章节中,已经详细介绍了什么是迭代器。生成器本质上也是迭代器,不过它比较特殊。 以list容器为例,在使用该容器迭代一组数据时,必须事先将所有数据存储到容器中,才能开始迭代;而生成器却不同,它可以实现在迭代的同时...

什么是迭代器,Python迭代器及其用法

前面章节中,已经对列表(list)、元组(tuple)、字典(dict)、集合(set)这些序列式容器做了详细的介绍。值得一提的是,这些序列式容器有一个共同的特性,它们都支持使用for循环遍历存储的元素,都是可迭代的,因此它们又有一个别称,即迭...

什么是运算符重载,Python可重载运算符有哪些?

前面章节介绍了Python中的各个序列类型,每个类型都有其独特的操作方法,例如列表类型支持直接做加法操作实现添加元素的功能,字符串类型支持直接做加法实现字符串的拼接功能,也就是说,同样的运算符对于不同序列类型的意义...

Python __call__()方法(详解版)

本节再介绍Python类中一个非常特殊的实例方法,即__call__()。该方法的功能类似于在类中重载()运算符,使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。 举个例子:classCLanguage:...

Python issubclass和isinstance函数:检查类型

Python提供了如下两个函数来检查类型:issubclass(cls,class_or_tuple):检查cls是否为后一个类或元组包含的多个类中任意类的子类。isinstance(obj,class_or_tuple):检查obj是否为后一个类或元组包含的多个类...

Python setattr()、getattr()、hasattr()函数用法详解

除了前面介绍的几个类中的特殊方法外,本节再介绍3个常用的函数,分别是hasattr()、getattr()以及setattr。Pythonhasattr()函数hasattr()函数用来判断某个类实例对象是否包含指定名称的属性或方法。该函数的语...

Python __dict__属性:查看对象内部所有属性名和属性值组成的字典

在Python类的内部,无论是类属性还是实例属性,都是以字典的形式进行存储的,其中属性名作为键,而值作为该键对应的值。 为了方便用户查看类中包含哪些属性,Python类提供了__dict__属性。需要注意的一点是,该属性可以...

Python __dir__()用法:列出对象的所有属性(方法)名

前面在介绍Python内置函数时,提到了dir()函数,通过此函数可以某个对象拥有的所有的属性名和方法名,该函数会返回一个包含有所有属性名和方法名的有序列表。 举个例子:classCLanguage:def__init__(self,)...

Python __del__()方法:销毁对象

我们知道,Python通过调用__init__()方法构造当前类的实例化对象,而本节要学的__del__()方法,功能正好和__init__()相反,其用来销毁实例化对象。 事实上在编写程序时,如果之前创建的类实例化对象后续不再使用,最好...

Python __repr__()方法:显示属性

前面章节中,我们经常会直接输出类的实例化对象,例如:classCLanguage:passclangs=CLanguage()print(clangs)程序运行结果为:<__main__.CLanguageobjectat0x000001A7275221D0>通常情况下,直接输出某个实...

Python __new__()方法详解

__new__()是一种负责创建类实例的静态方法,它无需使用staticmethod装饰器修饰,且该方法会优先__init__()初始化方法被调用。 一般情况下,覆写__new__()的实现将会使用合适的参数调用其超类的super().__new__(...

Python枚举类定义和使用(详解版)

一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有12个;再比如用一个类表示季节,则该类的实例化对象最多有4个。 针对这种特殊的类,Python3.4中新增加了Enum枚...

什么是多态,Python多态及用法详解

在面向对象程序设计中,除了封装和继承特性外,多态也是一个非常重要的特性,本节就带领大家详细了解什么是多态。 我们都知道,Python是弱类型语言,其最明显的特征是在使用变量时,无需为其指定具体的数据类型。这会导致一...

Python MetaClass元类详解

MetaClass元类,本质也是一个类,但和普通类的用法不同,它可以对类内部的定义(包括类属性和类方法)进行动态的修改。可以这么说,使用元类的主要目的就是为了实现在创建类时,能够动态地改变类中定义的属性或者方法。 不要从...

Python type()函数:动态创建类

我们知道,type()函数属于Python内置函数,通常用来查看某个变量的具体类型。其实,type()函数还有一个更高级的用法,即创建一个自定义类型(也就是创建一个类)。 type()函数的语法格式有2种,分别如下:type(obj) ty...