当前位置 博文首页 > Python中常见的导入方式总结

    Python中常见的导入方式总结

    作者:Villanelle# 时间:2021-06-10 18:30

    一、直接导入模块

    import 模块名

    优点:干净直接

    import sys
    print(sys.path)
    import os # os是一个模块
    import os.path # 注意这里的os.path是一个模块

    二、直接导入包

    import 包名

    如果只导入包,在调用时不可使用.来找到模块,但可以访问到__init__.py下的类和函数。

    import bs4 # 注意这里bs4是一个包!
    soup = bs4.BeautifulSoup(...) # 可以访问到包中__init__.py下的类和函数
    
    import Mypack
    # Mypack.fun.func() 会报错,找不到fun模块,需要使用方法3或6来导入特定模块
    

    三、导入包中的一个模块

    import 包名.模块名

    包使用的注意事项

    • 需要先将包(文件夹)写在sys.path列表中的一个目录下,如果没有需要使用列表的append方法追加进去。
    • 在包中需要再写一个__init__.py文件表示这是一个包,文件可以为空。在__init__.py下写的函数和类可以在只导入包的情况下访问到(如只导入bs4包,可以使用BeautifulSoup类,但不可以使用包中的其他模块)。
    import sys
    sys.path.append(r"E:\\")
    
    import Mypack.fun
    Mypack.fun.func()

    四、导入模块并取别名

    import 模块名 as 别名

    优点:别名方便记忆

    import sys as s
    print(s.path)
    
    import Mypack.fun as f
    f.func()

    五、从模块(或者包)中取出特定函数(不建议)

    from 模块名(包名) import 函数名

    优点:直接取出特定函数,无需再加命名空间。

    缺点:无命名空间限制,容易乱。

    from sys import setrecursionlimit
    setrecursionlimit(500)
    
    from bs4 import BeautifulSoup # 这里取出了bs4包中__init__.py文件中的BeautifulSoup类
    soup = BeautifulSoup(...)
    

    用通配符导入模块中的所有函数,且无需加命名空间。

    from sys import *
    setrecursionlimit(500)

    六、从包中取出特定模块

     from 包名 import 模块名

    优点:相较方法3在调用时可以少写包名。

    from Mypack import fun
    fun.func()
    js
    下一篇:没有了