Python查看模块(变量、函数、类)方法

前面章节中,详细介绍了模块和包的创建和使用(严格来说,包本质上也是模块),有些读者可能有这样的疑问,即正确导入模块或者包之后,怎么知道该模块中具体包含哪些成员(变量、函数或者类)呢? 查看已导入模块(包)中包含的成员,本节给...

Python创建包,导入包(入门必读)

《Python包》一节中已经提到,包其实就是文件夹,更确切的说,是一个包含“__init__.py”文件的文件夹。因此,如果我们想手动创建一个包,只需进行以下2步操作:新建一个文件夹,文件夹的名称就是新建包的包名;在...

Python包(存放多个模块的文件夹)

实际开发中,一个大型的项目往往需要使用成百上千的Python模块,如果将这些模块都堆放在一起,势必不好管理。而且,使用模块可以有效避免变量名或函数名重名引发的冲突,但是如果模块名重复怎么办呢?因此,Python提出了包(Packag...

Python __all__变量用法

事实上,当我们向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线“_”或者双下划线“__”)开头的变量、函数和类。因此,如果我们不想模块文件中的某个成员被引入到其它文件中使用,可...

Python导入模块的3种方式(超级详细)

很多初学者经常遇到这样的问题,即自定义Python模板后,在其它文件中用import(或from...import)语句引入该文件时,Python解释器同时如下错误:ModuleNotFoundError:Nomodulenamed'模块名'意思是Python...

Python自定义模块

到目前为止,读者已经掌握了导入Python标准库并使用其成员(主要是函数)的方法,接下来要解决的问题是,怎样自定义一个模块呢? 前面章节中讲过,Python模块就是Python程序,换句话说,只要是Python程序,都可以作为模块导入...

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:...