温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python的py文件中有哪些细节

发布时间:2021-11-20 14:32:48 来源:亿速云 阅读:112 作者:iii 栏目:编程语言

本篇内容介绍了“Python的py文件中有哪些细节”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

模块是一种以.py为后缀的文件,我们可以在.py文件中编辑Python代码,比如变量、函数、类、逻辑等等,满足某种特定的功能。

比如新建一个test_for_xxxx.py的文件,此时我们已经创建了一个test_for_xxxx模块,模块的名称是该.py脚本文件的名称。

声明代码

在文件的头部编写以下声明代码:

#!/usr/bin/python 或者 #!/usr/bin/env python
#coding:utf-8

#!/usr/bin/python指定 【/usr/bin/python】目录下的Python解释器执行Python脚本。

#!/usr/bin/env python根据PATH环境变量中指定的第一个Python解释器,执行Python脚本。【推荐使用】

#coding:utf-8声明该文件的编码格式为 utf-8 。输入该代码就可以使py文件支持中文显示。

程序入口

在文件中添加如下代码:

if __name__ == "__main__"

if name == 'main’相当于Python模拟的程序入口,Python本身并没有这么规定,这只是一种编码习惯。当.py文件被直接运行时,if name == 'main’下的代码块将被运行;当.py文件以模块形式被导入时,if name == 'main’下的代码块不被运行。

包的概念

包是在模块之上的概念,为了方便管理而将文件进行打包,本质是一个目录。比如当两个功能不同的模块文件取了相同的名称时,无法区分导入的模块是哪个模块,就可以分别构造一个包,将模块放在包文件夹下,通过包.模块名来引用模块。通常一个包文件由__init__.py和其他诸多.py文件构成。该__init__.py内容可以为空,也可以写入一些包执行时的初始化代码。

包目录下除了模块文件为,也可以包含子目录,假如子目录中也有 init.py,那么它就是这个包的子包了。

常见的包结构:

package

├── init.py

├── module1.py

└── module2.py

有时候也会提到库的概念。Python库着重强调其功能性,可以视为具有相关功能模块、包的集合,也就是说具有某些功能的模块和包都可以称为库。比如Python内置了强大的标准库、还有像NumPy、Pandas这些强大科学计算功能的第三方库。

import的用法

接下来介绍下import的使用方法。模块的导入可以使用以下方式:

import 模块名称 as 自定义名称 # 可以避免冲突情况的发生
import 模块名称1
import 模块名称1,模块名称2

比如import test_for_xxxx中import本质上是将test_for_xxxx.py里面的所有代码解释编译之后赋值给了一个当前模块的同名变量test_for_xxxx。

当我们想要访问test_for_xxxx.py里面的name属性时,需要写test_for_xxxx.name,如果想要调用里面的add()函数时需要写test_for_xxxx.add()。导入模块后,模块所在文件夹将自动生成一个对应的__pycache__\test_for_xxxx.cpython-36.pyc文件。

所有被加载到内存的模块都放在sys.modules中,所以执行import时首先查询列表中是否已添加模块。如果已经添加至sys.modules中,那只需要将module的name添加到正在调用该module的本地空间中。如果还没有添加在sys.modules中,就需要在sys.path所有路径的目录中去按顺序查找该模块的文件,这些文件一般后缀为".py"、".pyo"、".pyc"、".pyd"、".dll",找到这些模块后就可以将这些模块添加到sys.modules中,再将module name导入到本地。

如果要导入模块内特定函数或者方法时,则可以使用from…import…,如下所示:

from 模块名称import 函数名称1, 函数名称2, 函数名称3 
from module_name import * # 导入所有方法, 不建议使用,以避免冲突情况的发生

from…import…中import的本质就是将test_for_xxxx.py里面的name属性和add()函数代码解释编译之后赋值给了一个叫做name和add的变量中,如果调用add()函数直接调用即可。

另外,导入模块和导入包直接的区别是导入包只是执行了包下面的__init__.py文件而已。

“Python的py文件中有哪些细节”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI