大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第38篇文章,第二阶段的课程:Python基础知识:Python中模块与包的概念与使用(中篇)。

学习本课程,建议先看一遍:【计算机基础知识】课程。


python 调用dll 没有权限 python调用.dll_python 调用dll 没有权限


一、模块存在的4种形式

1、以.py形式存在的文件,这是使用Python语言编写的.py文件;

2、以点DLL形式存在的文件,这是已经被编译为共享库或是DLL的C或C++的扩展;

3、以Python包的形式存在的文件,把一系列模块组织起来的文件夹(注:文件夹下有一个__init__.py文件,该文件夹也称为模块);

4、使用C语言编写并链接到Python解释器的内置模块首次导入模块;


python 调用dll 没有权限 python调用.dll_优先级_02


注:第2和第4是已经编译好或已经写好的模块,我们只需调用即可;第1和第3条是我们使用最多的情况,因为我们经常要自定义模块。

二、模块的优先级问题

1、查找加载优先级

Python解释器启动时,会同时启动内置的模块(只是预启动);

当执行py文件的时候,遇到import关键字,会将import关键字后面的模块名都进行启动操作;

启动顺序:内置库 > 第三方库 > 自定义库

2、结束调用优先级

自定义库与第三方库会在调用结束且文件执行结束之后,释放内存占用;而内置库会则在Python解释被关闭以后,释放内存占用;

结束调用优先级:自定义库 > 第三方库 > 内置库


python 调用dll 没有权限 python调用.dll_python 调用dll 没有权限_03


三、一个Python文件的两种用途

1、将Python文件当成模块使用

如果我们将一个xx.py当成一个模块进行调用,那么这个文件的名称还是xx.py,但它的模块名就是xx;Python解释器会在调入xx这个模块的文件中开辟一个名为xx的模块名称空间,指向xx.py文件;我们在调用xx这个模块时,就相当于调用xx.py这个文件。


python 调用dll 没有权限 python调用.dll_Python_04


2、将Python文件当作文件执行

如果定义了一个模块,我们需要在当前文件中测试这个模块的运行效果;我们需要在当前文件最末行添加“__name__ == ‘__main__’”这一条代码;

A. 当xx.py这个文件被当成文件执行时,执行“__name__ == ‘__main__’”这一行代码,返回的结果是True,就会正常执行文件;

B. 当xx.py这个文件被当成模块导入时,执行“__name__ == ‘__main__’”这一行代码,返回的结果是False;因为xx.py文件被当成模块导入时,__name__等于xx(模块名),与__main__并不相等,返回的结果必然是False。


python 调用dll 没有权限 python调用.dll_Python_05


以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。

感谢您的阅读,谢谢!