当前位置: 首页 > 图灵资讯 > 行业资讯> python怎么引包

python怎么引包

来源:图灵python
时间: 2025-01-22 15:43:51

python引包的三种方法:1、输入“import “包名”命令导入;2、输入“from 包名 import 导入模块名命令;3、输入“from 包名.模块名 import 导入“成员名”。

包实际上是一个模块,所以导入模块的语法也适用于导入包。无论是导入我们自定义的包,还是从其他地方下载的第三方包,导入方法都可以归因于以下几点 3 种:

import 包名[.模块名 [as 别名]]

from 包名 import 模块名 [as 别名]

from 包名.模块名 import 成员名 [as 别名]

用 [] 包括的部分是可选的部分,可以使用,也可以直接忽略。

请注意,在导入包的同时,包目录中会生成一个包。 __init__.cpython-36.pyc 文件的 __pycache__ 文件夹。

1) import 包名[.模块名 [as 别名]]

以 my_package 以包为例,导入 module1 该模块中的成员可以使用以下代码:

importmy_package.module1
my_package.module1.display("http://c.biancheng.net/java/")

运行结果如下:

http://c.biancheng.net/java/

可以看出,在将该语法格式导入包中的指定模块后,在使用该模块中的成员(变量、函数和类别)时,应添加“包名”。模块名称”作为前缀。当然,如果使用 as 给包名.模块名“起个别名,直接用这个别名作为前缀使用该模块的方法,如:

importmy_package.module1asmodule
module.display("http://c.biancheng.net/python/")

程序执行结果如下:

http://c.biancheng.net/python/

此外,当指定包直接导入时,程序将自动执行包对应文件夹下的包 __init__.py 文件中的代码。例如:

importmy_package
my_package.module1.display("http://c.biancheng.net/linux_tutorial/")

直接导入包名,不会将包中的所有模块都导入到程序中,它的作用只是导入并执行包下的模块 __init__.py 因此,操作程序并执行文件 __init__.py 同时,Attributeerroror也会在文件中抛出代码 异常(访问对象不存在):

http://c.biancheng.net/python/
Traceback(mostrecentcalllast):
File"C:\Users\mengma\Desktop\demo.py",line2,in<module>
my_package.module1.display("http://c.biancheng.net/linux_tutorial/")
AttributeError:module'my_package'hasnoattribute'module1'

我们知道,包的本质是模块。当导入模块时,当前程序将包含与模块名相同的名称和类型 module 导入包中的变量也是如此:

importmy_package
print(my_package)
print(my_package.__doc__)
print(type(my_package))

运行结果如下:

http://c.biancheng.net/python/
<module'my_package'from'C:\\Users\\mengma\\Desktop\\my_package\\__init__.py'>
http://c.biancheng.net/

创建第一个 Python 包

<class'module'>

2) from 包名 import 模块名 [as 别名]

导入my__package 包中的 module1 例如,使用此语法格式的实现代码如下:

frommy_packageimportmodule
module1.display("http://c.biancheng.net/golang/")

运行结果如下:

http://c.biancheng.net/python/http://c.biancheng.net/golang/

可以看出,使用此语法格式导入包中模块后,使用其成员时不需要带包名前缀,但需要带模块名前缀。当然,我们也可以使用它 as 定义导入的指定模块的别名,例如:from my_package import module1 as modulemodule.display("http://c.biancheng.net/golang/")该程序的输出结果与上述程序完全相同。同样,由于包也是一个模块,因此该语法格式自然支持from 包名 import *这种写法,它和 import 包名 它的功能是一样的,只是包 __init__.py 导入和执行文件。

3)from 包名.模块名 import 成员名 [as 别名]

该语法格式用于将指定成员(变量、函数或类别)导入到程序中。通过这种方式导入的变量(函数、类别)可以直接使用变量名(函数名、类别名称),例如:

frommy_package.module1importdisplay
display("http://c.biancheng.net/shell/")

运行结果如下:

http://c.biancheng.net/python/
http://c.biancheng.net/shell/

当然,也可以使用 as 给导入的成员起个别名,例如:

frommy_package.module1importdisplayasdis
dis("http://c.biancheng.net/shell/")

该程序的运行结果与上述程序相同。此外,在使用该语法格式加载指定包的指定模块时,可以使用 * 替换成员名称意味着模块下的所有成员都被加载。例如:

frommy_package.module1import*
display("http://c.biancheng.net/python")

推荐课程:Python(小甲鱼)零基础入门学习

上一篇:

python怎么获得某日时间

下一篇:

返回列表