ad

《Python学习笔记 从入门到实战》_更了解Python的途径之一_8.1.3 使用name属性

网友投稿 115 2023-11-07

【摘要】 本书摘自《Python学习笔记 从入门到实战》一书中第8章,第1节,由张学建编著。

8.1.3 使用name属性

在 Python 程序中,当一个程序第一次引入一个模块时,将会运行主程序。如果想在导 入模块时不执行模块中的某一个程序块,可以用“ name ”属性使该程序块仅在该模块 自身运行时执行。在运行每个 Python程序时,通过对这个“ name ”属性值的判断,可 以让作为导入模块和独立运行时的程序都可以正确运行。在 Python 程序中,如果程序作为 一个模块被导入, 则其“ name ”属性设置为模块名。如果程序独立运行,则将其“ name ”属性设置为“ main ”。由此可见,可以通过属性“ name ”来判断程序的 运行状态。

例如在下面的实例代码中,演示了使用“ name ”属性设置测试模块是否能正常运行 的过程。

实例8-4:测试模块是否能正常运行

源码路径:下载包\daima-4

在上述代码中,将模块的主要功能以实例的形式保存在 if 语句中,这样可以方便地测试 模块是否能够正常运行,或者发现模块的错误。执行后会显示“三体飞船在运行”,如果输 入“import using_name”, 按下回车后则输出“我来自另一模块”。执行后会输出:

《Python学习笔记 从入门到实战》_更了解Python的途径之一_8.1.3 使用name属性

三体飞船在运行

注意:建议读者在命令行模式运行【python using_name.py】命令查看完整运行结果,后

面的交互式实例也不例外。

如果想了解模块中所提供的功能(变量名、函数名),可以使用内建的函数 dir(模块名) 来输出模块中的这些信息,当然也可以不使用模块名参数来列出当运行时中的模块信息。例 如可以通过 “dir(using_name)” 列出模块 “using_name” 中的信息。如图8-5所示。

8.2 包是管理程序模块的形式

8.2.1 表示包

在Python 程序中,包其实就是一个文件夹或目录,但其中必须包含一个名为“ init py”(init 的前后均有两条下画线)的文件。“init .py” 可以是一个空文件,表示这个目 录是一个包。另外,还可以使用包的嵌套用法,即在某个包中继续创建子包。

在编程过程中,我们可以将包看作是处于同一目录中的模块。在 Python 程序中使用包时, 需要先使用目录名,然后再使用模块名导入所需要的模块。如果需要导入子包,则必须按照 包的顺序(目录顺序)使用点运算符“.”进行分隔,并使用import 语句进行导入。

在 Python 语言中,包是一种管理程序模块的形式,采用上面讲解的“点模块名(.模块名)” 方式来表示。比如一个模块的名称是 “A.B”, 则表示这是一个包A 中的子模块 B 。在使用 一个包时,就像在使用模块时不用担心不同模块之间的全局变量相互影响一样。在使用“点 模块名(.模块名)”这种形式时,无须担心不同库之间模块重名的问题。

为了便于读者理解,下面举两个简单的例子。

(1)Web 项目举例

在上述结构中, “myweb” 、“handle” 、“temple” 和 “tools” 是相互独立并列的文件

夹,每个文件夹就是一个包,里面都保存了对应的程序文件。在现实应用中,通常将功能不 同的程序文件放在不同的目录下,同目录保存同类功能的程序文件。此时如果想在主程序中 调用包 “handle” 中文件 index.py 模块中的函数 adO, 可以使用如下三种方法实现。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《深入理解 Java 虚拟机 JVM 高级特性与最佳实践(第3版)》_求知之路漫漫_3.6.1 Shenandoah 收集器
下一篇:《深入理解 Java 虚拟机 JVM 高级特性与最佳实践(第3版)》_求知之路漫漫_1.4.6 Apache Harmony/Google Android Dalvik VM
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×