温馨提示×

温馨提示×

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

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

Python中怎么控制from xxx import *导入的成员

发布时间:2021-11-25 11:52:44 来源:亿速云 阅读:147 作者:iii 栏目:互联网科技

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

控制from xxx import *导入的成员

默认情况下,所有的成员都会被导入。但可以修改__all__变量控制哪些成员可以被导入。该变量是字符串列表(或元组),内部元素是可被导入的成员名。

示例请看下图:test1模块中有name、age、height三个成员,__all__变量保存了这三个成员名。test2模块用from test1 import *导入test1所有成员,此时test2模块可以正常使用test1的三个成员。

Python中怎么控制from xxx import *导入的成员

再看下图:test1模块中__all__变量保存了三个成员名,但注释了height这个成员(注意列表的书写方式,一个元素一行,用ctrl+/注释不能被导入的成员非常方便。如果所有内容写在一行时就不能注释内部元素,只能删除),test2模块用from test1 import *导入test1的所有成员,此时只能使用name和age这两个成员,height成员不能使用。

Python中怎么控制from xxx import *导入的成员

注意:使用import 模块时,__all__不起作用。请看下图示例,test2模块用import test1导入test1的所有成员后,即使test1的height成员在__all__变量中被注释了,仍然可以正常使用。

Python中怎么控制from xxx import *导入的成员

绝对导入

在大型项目中经常会遇到模块文件很多的情况,为了方便管理一般会按功能分别建立多个文件夹,在不同文件夹下各自有多个模块,各个模块之间还存在相互引用的情况。今天先梳理一种绝对导入的方法。

有一个项目,路径是D:\Python自学笔记\模块,在该项目下有多个模块和文件夹,其中aa文件夹下有b文件夹,b文件夹内有bb.py模块。

注意红圈的内容,实际上python解释器会在加载.py文件时自动生成sys.path列表信息,sys.path[0]是当前模块的完整路径,sys.path[1]是当前模块的项目路径。

现bb模块需要调用cc模块的成员num2,可以通过from aa.c.cc import *的方法,其中b模块已知项目路径是“D:\Python自学笔记\模块”,然后加上aa文件夹名再加上.c文件夹名再加.cc模块名,即可绝对导入cc.py模块中所有的成员。

Python中怎么控制from xxx import *导入的成员

Python中怎么控制from xxx import *导入的成员

在项目路径“D:\Python自学笔记\模块”下有test_import.py模块,可以通过绝对导入的方式导入bb模块(另外bb模块中已经绝对导入cc模块,所以相当于同时导入了bb和cc),还可以通过import导入同路径下的test1模块。

Python中怎么控制from xxx import *导入的成员

Python中怎么控制from xxx import *导入的成员

绝对路径导入方法简洁易懂,要参与大型项目必须得学会这项技能。深入学python的朋友们最好自行敲代码多多练习加以熟练掌握。

“Python中怎么控制from xxx import *导入的成员”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

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

AI