返回介绍

习题解答

发布于 2024-01-29 22:24:16 字数 667 浏览 0 评论 0 收藏 0

1.模块的源代码文件在模块导入时,就会自动生成模块对象。从技术角度来讲,模块的源代码会在导入时运行,一次一条语句,而在这个过程中赋值的所有变量名都会生成模块对象的属性。

2.只需设置PYTHONPATH,从而可以从正在用的目录(也就是正在交互模式下使用的当前目录,或者包含顶层文件的目录)以外的其他目录进行导入。

3.模块导入搜索路径的四个主要组件是顶层脚本的主目录(包含该文件的目录)、列在PYTHONPATH环境变量中的所有目录、标准链接库目录以及位于标准位置中.pth路径文件中的所有目录。其中,程序员可以定制PYTHONPATH和.pth文件。

4.Python可能载入源代码文件(.py)、字节码文件(.pyc)、C扩展模块(例如,Linux的.so文件,以及Windows的.dll或.pyd)以及相同变量名的目录(用于包导入)。导入也可以加载更罕见的东西,例如,ZIP文件组件、Python Jython版的Java类、IronPython的.NET组件以及没有文件形式的静态连接C扩展。有了导入钩子,导入可以加载任何东西。

5.命名空间是一种独立完备的变量包,而变量就是命名空间对象的属性。模块的命名空间包含了代码在模块文件顶层赋值的所有变量名(也就是没有嵌套于def或class语句中)。从技术角度上来讲,模块的全局作用域会变成模块对象的属性命名空间。模块的命名空间也会将其导入的其他文件中所做的赋值运算而发生变化,不过这不值得鼓励(参考第17章的相关内容)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文