-
Python __doc__属性:查看文件
所属栏目:[语言] 日期:2023-06-03 热度:8600
在使用 dir() 函数和 __all__ 变量的基础上,虽然我们能知晓指定模块(或包)中所有可用的成员(变量、函数和类),比如:
import string
print(string.__all__)
程序执行结果为:
['ascii_letters', &#[详细] -
Python查寻模块(变量、函数、类)方法
所属栏目:[语言] 日期:2023-06-03 热度:4066
前面章节中,详细介绍了模块和包的创建和使用(严格来说,包本质上也是模块),有些读者可能有这样的疑问,即正确导入模块或者包之后,怎么知道该模块中具体包含哪些成员(变量、函数或者类)呢?
查看已导入模块[详细] -
Python创建包,导入包(初级必读)
所属栏目:[语言] 日期:2023-06-03 热度:3630
《Python包》一节中已经提到,包其实就是文件夹,更确切的说,是一个包含“__init__.py”文件的文件夹。因此,如果我们想手动创建一个包,只需进行以下 2 步操作:
新建一个文件夹,文件夹的名称就是新建[详细] -
Python包(存放很多个模块的文件夹)
所属栏目:[语言] 日期:2023-06-03 热度:869
实际开发中,一个大型的项目往往需要使用成百上千的 Python 模块,如果将这些模块都堆放在一起,势必不好管理。而且,使用模块可以有效避免变量名或函数名重名引发的冲突,但是如果模块名重复怎么办呢?因此,Python[详细]
-
Python __all__变量使用方法
所属栏目:[语言] 日期:2023-06-03 热度:2618
事实上,当我们向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线“_”或者双下划线“__”)开头的变量、函数和类。因此,如果我们不想模块文件中的某个成员被引入到其它文件[详细]
-
怎样自定义Python模块
所属栏目:[语言] 日期:2023-06-03 热度:2621
到目前为止,读者已经掌握了导入 Python 标准库并使用其成员(主要是函数)的方法,接下来要解决的问题是,怎样自定义一个模块呢?
前面章节中讲过,Python 模块就是 Python 程序,换句话说,只要是 Python 程序,[详细] -
Python导入模块,Python import用法(非常详细)
所属栏目:[语言] 日期:2023-06-02 热度:2853
使用 Python 进行编程时,有些功能没必须自己实现,可以借助 Python 现有的标准库或者其他人提供的第三方库。比如说,在前面章节中,我们使用了一些数学函数,例如余弦函数 cos()、绝对值函数 fabs() 等,它们位于 P[详细]
-
什么是模块,Python模块化编程(初级必备)
所属栏目:[语言] 日期:2023-06-02 热度:6019
Python 提供了强大的模块支持,主要体现在,不仅 Python 标准库中包含了大量的模块(称为标准模块),还有大量的第三方模块,开发者自己也可以开发自定义模块。通过这些强大的模块可以极大地提高开发者的开发效率。[详细]
-
Python traceback模块:如何获取异常信息
所属栏目:[语言] 日期:2023-06-02 热度:5900
除了使用 sys.exc_info() 方法获取更多的异常信息之外,还可以使用 traceback 模块,该模块可以用来查看异常的传播轨迹,追踪异常触发的源头。
下面示例显示了如何显示异常传播轨迹:
class SelfException(Excep[详细] -
Python sys.exc_info()方法:获得异常信息
所属栏目:[语言] 日期:2023-06-02 热度:2116
在实际调试程序的过程中,有时只获得异常的类型是远远不够的,还需要借助更详细的异常信息才能解决问题。
捕获异常时,有 2 种方式可获得更多的异常信息,分别是:
使用 sys 模块中的 exc_info 方法;
使用 tra[详细] -
Python raise用法(超级具体,看了无师自通)
所属栏目:[语言] 日期:2023-06-02 热度:6115
在前面章节的学习中,遗留过一个问题,即是否可以在程序的指定位置手动抛出一个异常?答案是肯定的,Python 允许我们在程序中手动设置异常,使用 raise 语句即可。
读者可能会感到疑惑,即我们从来都是想方设法地[详细] -
Python try except finally:重要资源回收
所属栏目:[语言] 日期:2023-06-02 热度:3381
Python 异常处理机制还提供了一个 finally 语句,通常用来为 try 块中的程序做扫尾清理工作。
注意,和 else 语句不同,finally 只要求和 try 搭配使用,而至于该结构中是否包含 except 以及 else,对于 finally 不[详细] -
Python try except else具体说明
所属栏目:[语言] 日期:2023-06-02 热度:3650
在原本的try except结构的基础上,Python 异常处理机制还提供了一个 else 块,也就是原有 try except 语句的基础上再添加一个 else 块,即try except else结构。
使用 else 包裹的代码,只有当 try 块没有捕获到任[详细] -
Python try except异常处理详解(入门必备)
所属栏目:[语言] 日期:2023-06-02 热度:3688
Python 中,用try except语句块捕获并处理异常,其基本语法结构如下所示:
try:
可能产生异常的代码块
except [ (Error1, Error2, ... ) [as e] ]:
处理异常的代码块1
except [ (Error3, Error4, ... )[详细] -
Python @函数装饰器及用法(非常详细)
所属栏目:[语言] 日期:2023-06-02 热度:1778
前面章节中,我们已经讲解了 Python 内置的 3 种函数装饰器,分别是 @staticmethod、@classmethod 和 @property,其中 staticmethod()、classmethod() 和 property() 都是 Python 的内置函数。
那么,函数装饰器[详细] -
什么是迭代器,Python迭代器和用法
所属栏目:[语言] 日期:2023-06-02 热度:9300
前面章节中,已经对列表(list)、元组(tuple)、字典(dict)、集合(set)这些序列式容器做了详细的介绍。值得一提的是,这些序列式容器有一个共同的特性,它们都支持使用 for 循环遍历存储的元素,都是可迭代的,[详细]
-
运算符重载是什么,Python可重载运算符有哪些?
所属栏目:[语言] 日期:2023-06-02 热度:4713
前面章节介绍了 Python 中的各个序列类型,每个类型都有其独特的操作方法,例如列表类型支持直接做加法操作实现添加元素的功能,字符串类型支持直接做加法实现字符串的拼接功能,也就是说,同样的运算符对于不同序列[详细]
-
Python __call__()方法(解析版)
所属栏目:[语言] 日期:2023-06-02 热度:801
本节再介绍 Python 类中一个非常特殊的实例方法,即 __call__()。该方法的功能类似于在类中重载 () 运算符,使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。
举个例子:
class CLa[详细] -
Python issubclass和isinstance函数:检查类别
所属栏目:[语言] 日期:2023-06-02 热度:900
Python 提供了如下两个函数来检查类型:
issubclass(cls, class_or_tuple):检查 cls 是否为后一个类或元组包含的多个类中任意类的子类。
isinstance(obj, class_or_tuple):检查 obj 是否为后一个类或元组包含的多[详细] -
Python setattr()、getattr()、hasattr()函数使用方法详解
所属栏目:[语言] 日期:2023-06-02 热度:2664
除了前面介绍的几个类中的特殊方法外,本节再介绍 3 个常用的函数,分别是 hasattr()、getattr() 以及 setattr。
Python hasattr()函数
hasattr() 函数用来判断某个类实例对象是否包含指定名称的属性或方法。该函数[详细] -
Python __dict__属性:查找对象内部所有属性名和属性值组成的字典
所属栏目:[语言] 日期:2023-06-02 热度:584
在 Python 类的内部,无论是类属性还是实例属性,都是以字典的形式进行存储的,其中属性名作为键,而值作为该键对应的值。
为了方便用户查看类中包含哪些属性,Python 类提供了 __dict__ 属性。需要注意的一点是,[详细] -
Python __dir__()用法:列出对象的全部属性(方法)名
所属栏目:[语言] 日期:2023-06-01 热度:6743
前面在介绍 Python 内置函数时,提到了 dir() 函数,通过此函数可以某个对象拥有的所有的属性名和方法名,该函数会返回一个包含有所有属性名和方法名的有序列表。
举个例子:
class CLanguage:
def __init_[详细] -
Python __del__()方法:删除对象
所属栏目:[语言] 日期:2023-06-01 热度:2366
我们知道,Python 通过调用 __init__() 方法构造当前类的实例化对象,而本节要学的 __del__() 方法,功能正好和 __init__() 相反,其用来销毁实例化对象。
事实上在编写程序时,如果之前创建的类实例化对象后续不[详细] -
Python __repr__()方式:显示属性
所属栏目:[语言] 日期:2023-06-01 热度:7905
前面章节中,我们经常会直接输出类的实例化对象,例如:
class CLanguage:
pass
clangs = CLanguage()
print(clangs)
程序运行结果为:
<__main__.CLanguage object at 0x000001A7275221D0>
通常情况下[详细] -
Python __new__()方法详细说明
所属栏目:[语言] 日期:2023-06-01 热度:6429
__new__() 是一种负责创建类实例的静态方法,它无需使用 staticmethod 装饰器修饰,且该方法会优先 __init__() 初始化方法被调用。
一般情况下,覆写 __new__() 的实现将会使用合适的参数调用其超类的 super().__[详细]
