1K+ 浏览量
‘modulefinder’模块中的ModuleFinder类可以确定某个脚本导入的模块集。此模块具有命令行界面和编程界面。为了演示其功能,请使用以下脚本 #modfinder.py import hello try: import trianglebrowser import nomodule, mymodule except ImportError: pass 命令行界面以下命令显示找到和未找到的模块列表。E:\python37>python -m modulefinder modfinder.py 输出名称 文件 ---- ---- m __main__ modfinder.py m hello hello.py m math m trianglebrowser trianglebrowser.py 缺少模块: ? mymodule 来自 __main__ 的导入 ? nomodule 来自 __main__ 的导入 编程界面ModuleFinder 类在 ... 阅读更多
176 浏览量
自动垃圾收集是Python的重要功能之一。垃圾收集机制试图回收程序不再使用的对象占用的内存。Python使用引用计数机制进行垃圾收集。Python解释器会计算对象被其他对象引用的次数。当对对象的引用被删除时,该对象的计数会递减。当引用计数变为零时,对象的内存就会被回收。通常情况下,这种机制会自动执行。但是,如果程序中出现某种情况,也可以有目的地执行此操作。'gc'模块 ... 阅读更多
2K+ 浏览量
警告与程序中的错误不同。如果遇到错误,Python程序会立即终止。另一方面,警告并非致命错误。它会显示某些消息,但程序会继续运行。发出警告是为了提醒用户某些并非严格意义上的异常的条件。如果发现某些编程元素(如关键字/函数/类等)的某些已弃用的用法,通常会出现警告。警告消息由Python标准库的'warning'模块中定义的warn()函数显示。警告实际上是内置类层次结构中Exception的一个子类。有很多内置的Warning子类。用户也可以定义子类 ... 阅读更多
325 浏览量
Python库中struct模块的规定在执行C类型结构体和Python字节对象之间的转换时非常有用。这可以通过模块级函数以及struct模块中定义的Struct类及其方法来实现。转换函数使用格式字符串。格式字符串中使用的字节序、大小和对齐方式由格式字符确定,如下表所示 字符 字节序 大小 对齐方式 @ 本机 本机 本机 = 本机 标准 无 big-endian 标准 无 ! 网络(= big-endian) 标准 无 下表显示用于表示C类型变量和相应Python类型的格式字符。格式 C类型 Python类型 x 填充字节 无值 c char 长度为1的字节 b/B 有符号/无符号 char 整数 ? _Bool bool h/H short/unsigned short 整数 i/I int/unsigned int 整数 l/L long/unsigned long 整数 f float 浮点数 d double 浮点数 s char[] 字节 p char[] 字节 P void * 整数 下面... 阅读更多
11K+ 浏览量
如果一个类包含一个或多个抽象方法,则该类称为抽象类。抽象方法是一个已声明但没有实现的方法。抽象类不能被实例化,其抽象方法必须由其子类实现。抽象基类提供了一种在其他技术(如hasattr())笨拙或细微错误(例如使用魔术方法)时定义接口的方法。ABC引入了虚拟子类,这些子类不继承自某个类,但仍然被isinstance()和issubclass()函数识别。Python中有许多内置的ABC。用于数据的ABC ... 阅读更多
使用'zipimport'模块可以从ZIP格式存档导入Python模块和包。此模块还允许sys.path的项目是命名ZIP文件存档的字符串。ZIP存档中可以存在任何文件,但只有.py和.pyc文件可用于导入。不允许ZIP导入动态模块。此模块的功能通过首先构建'newdir'目录中文件的zip存档来解释。假定'newdir'目录中存在以下文件 ['guess.py', 'hello.py', 'impzip.py', 'mytest.py', 'prime.py', 'prog.py', 'tmp.py'] import sys, glob import zipfile files = glob.glob("*.py") print (files) ... 阅读更多
225 浏览量
Python库中的pyclbr模块提取有关在Python模块中定义的函数、类和方法的信息。信息是从Python源代码中提取的,而不是通过导入模块来提取的。此模块定义了readmodule()函数,该函数返回一个字典,该字典将模块级类名映射到类描述符。该函数将模块名作为参数。它可能是包中模块的名称。在这种情况下,path是预先添加到sys.path的目录路径序列,用于查找模块源代码。以下代码使用readmodule()函数来解析类和方法 ... 阅读更多
785 浏览量
Python是一种基于解释器的语言。但是,当运行脚本(.py扩展名)时,它会在内部将源代码编译成字节码,之后会自动删除字节码版本。当第一次导入模块(除了预编译的内置模块)时,也会自动构建其编译版本,但会以.pyc扩展名的形式保存在__pycache__文件夹中。随后再次调用导入同一个模块不会重新编译模块,而是使用已构建的模块。但是,可以显式编译具有.py扩展名的Python脚本文件,而无需运行它。'py_compile'模块包含用于此目的的'compile()'函数。名称 ... 阅读更多
5K+ 浏览量
Python库中'trace'模块中的函数生成程序执行的跟踪,以及带注释的语句覆盖率。它还具有通过生成调用者关系来列出运行期间调用的函数的函数。以下两个Python脚本用作示例来演示trace模块的功能。#myfunctions.py import math def area(x): a = math.pi*math.pow(x, 2) return a def factorial(x): if x==1: return 1 else: return x*factorial(x-1) #mymain.py import myfunctions def main(): x = 5 print ('area=', myfunctions.area(x)) ... 阅读更多
516 浏览量
Python库中的'_thread'模块提供了一个底层接口,用于处理具有多个线程共享全局数据空间的轻量级进程。为了同步,此模块中定义了简单的锁(也称为互斥锁或二进制信号量)。内置'threading'模块在此模块之上构建了一个更高级别的线程API。start_new_thread()此模块级函数用于在当前进程中打开一个新线程。该函数将函数对象作为参数。在新线程成功创建后,此函数将被调用。此函数的范围对应于线程的生命周期。该线程 ... 阅读更多