您现在的位置是:群英 > 开发技术 > Python语言
Python的模块导入和重载如何理解?一文带你看懂
Admin发表于 2021-12-02 17:45:511330 次浏览

    今天我们一起来了解一下Python的模块导入和重载的内容,下文对模块和重载、模块与命名空间等等都有详细的介绍,对大家学习Python有一定的帮助,那么接下来感兴趣的朋友就跟随小编继续往下看吧。

模块和重载

    简单来讲,任意一个以.py结尾的python文件都是一个模块。例如有A.py和B.py两个文件。在A中可以通过导入B来读取B模块定义的内容,导入操作本质上就是载入另一个文件。
    基于模块的模型是python程序架构背后的核心思想。

    一个大型python程序往往以多个模块文件的形式出现,并且从其它模块导入工具。但是通常会指定一个模块文件作为主文件(也叫顶层文件),该文件启动之后,就会运行整个程序。除了顶层文件之外的其他文件都是导入模块。

    导入操作将会导致模块中的代码被运行,因此导入文件也是一种运行python文件的方法。 模块文件只有第一次被导入的时候会被执行,之后就不会被执行。如下图所示:

    如果你想在同一个python会话中,多次运行模块文件,你需要调用importlib模块的reload方法(reload方法在python2中是内置方法,在python3中需要从importlib模块中导入)。如下图所示:

    reload函数载入并运行了代码,如果你对reload载入的代码做过修改,那么下一次reload将会载入修改过的代码。如下图所示:

    注意,reload函数使用的前提是之前import过该模块,否则会报错。
    因为reload希望获得的参数是一个已经被导入过的模块名称。
    reload函数是不传递的,也就是说你重载了A文件,A文件中导入的模块不会被重载。

    导入和重载提供了一种自然的程序启动选项。模块其实起到了一个命名空间的作用。而模块中的变量就是属性。

    导入模块可以使用import也可以使用from。它们之间是有一定的差别的,from是复制了模块的属性,使得属性成为该文件的直接变量。这时候你就能直接使用该属性。例如:

    使用load模块的属性a,需要使用object.attributu的方式来使用。而b是通过from方法导入的,则不需要,因为from将b复制到了该文件中,而不是依旧存在于load这个命名空间。

    无论是import还是from导入文件,都不需要加python文件扩展名.py,如果你一不小心加上了,那么会报错。

模块与命名空间

    每个模块都是自包含的命名空间,一个模块文件无法获得另一个模块文件中的变量,除非它显示的导入那个文件。每一个模块都是一个独立的命名空间。

    以上就是关于Python的模块导入和重载的介绍,有需要的朋友可以了解看看,希望大家阅读完这篇文章能有所收获。最后,想要了解更多可以继续浏览群英网络其他相关的文章。

文本转载自脚本之家

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

相关信息推荐
2021-12-21 17:49:39 
摘要:这篇文章我们来了解C语言中操作符的内容,C语言中操作符有单目操作符、关系操作符、条件操作符、逗号表达式、逻辑操作符。那么具体这些操作符怎样使用呢?要注意什么?下面我们一起来了解看看。
2021-12-21 17:49:38 
摘要:这篇文章我们来了解C语言的scanf和scanf_s函数用法,一些朋友会认为scanf和scanf_s函数是一样的,其实两者有一定的区别,下文我们就来详细的了解看看,有需要的朋友可以参考,那么接下来就跟随小编来了解看看吧!
2021-12-22 20:31:59 
摘要:这篇文章给大家分享的是C++三元表达式的内容。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的很详细,对大家学习和理解C++三元表达式的网使用有一定的帮助,感兴趣的朋友接下来一起跟随小编看看吧。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部