• 18.模块导入


    导入模块或包

    #文件就是一个模块,文件夹就是一个包
    #文件夹里面可以有很多文件,就相当于包中有好多的模块.
    
    import 模块或者包(包是文件夹,模块是文件)
    模块不会被重复导入,引入一次终生受益
    

    1.导入模块

    # 1.import 引入模块
    """
    import ...as..改名
    调用:
        模块.变量
        模块.函数
        模块.类
    """
    import module as jia #从文件夹引入模块
    print(jia.name) #贾英贺
    jia.func() #我是好人
    
    # 2.导入任意文件下的模块
    import sys
    """
    import导模块的时候,会从sys.path提供的路径下去找,找不到就报错
    可以把要导入模块的路径添加到sys.path路径里
    sys.path.append(r文件路径) r防止转义
    """
    
    # 3.from ...import ... 从哪里导入..(变量,函数,类,模块)
    """
    调用 : 直接调用,不需要再 . 了
    """
    # 导入单个成员
    from module import name
    print(name)
    # 导入多个成员
    from module import name,func
    func()
    # 导入所有成员(*)
    """
    在被调用文件中,可以用魔术方法__all__=[]限制导入所有*
    列表成员: ["变量名","函数名","类名"]
    """
    from module import *
    
    # 4.返回模块名字的魔术属性 : __name__
    """
    如果当前文件是直接运行的,返回"__main__"字符串
    如果当前文件是间接导入的,返回当前文件名
    作用:
        防止其他文件引入测试代码
    module文件下测试代码
        if __name__=="__main__":
            print(name)
            func()
    """
    print(__name__) #__main__
    

    2.导入包

    # 1.单入口模式:只通过主文件来调用分模块内容,分模块不单独执行
    """
    单入口文件必须和包在同一层级,包里面可以含有各种包和模块
    分模块不能单独进行调用,统一由主文件main进行调用
    模块之间的互相嵌套导入,使用相对路径实现
    """
    import package2.pkg_one.pkgone_1 as pp
    #在pkgone_1文件下,可以使用相对路径导入(模块或模块中的具体成员)
    """
    相对路径:
        .    当前路径
        ..   上一级路径
        ...  上一级的上一级
        .....   (这里的点是无限的)
    引入模块:
        from . import pkg           相对于当前路径引入模块
        from .pko2 import ceshi204  相对于当前模块引入具体属性
        from .. import pkg2_module1 相对于上一级引入模块
        from ..pkg2_two import pkt1 相对于上一级的某个包引入模
    """
    
    # 2.导入包 import
    """
    文件=>模块 文件夹=>包
    当import 文件夹时,会自动调用__init__.py初始化文件;
    可以通过初始化文件__init__.py引入其他模块:
    	需要绝对路径,从引入包同一级文件开始引入模块
    """
    
  • 相关阅读:
    maven报错【Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of】
    Srping框架中使用@query注解实现复杂查询
    FreeMarker自定义TemplateDirectiveModel
    SpringMVC和Freemarker整合,带自定义标签的使用方法
    关于FreeMarker自定义TemplateDirectiveModel
    滑块验证码【插件待研究】
    注册页面 注册码【欠缺较多 待完善】
    IO流-文件的写入和读取
    Date、String、Calendar相互转化
    Runtime类
  • 原文地址:https://www.cnblogs.com/jia-shu/p/14146623.html
Copyright © 2020-2023  润新知