zoukankan      html  css  js  c++  java
  • python学习手册:第二十二章——模块代码编写基础

    模块导入逻辑

    • 模块只能导入一次,如果导入之后模块有修改可以使用
    import module
    module.xxx
    from imp import reload
    reload(module)
    module.xxx
    

    包和搜索路径设置

    • python不支持用绝对路径导入包: import C:mycodedirmod 这么导入会报错
    • 如果模块不在可搜索的工作目录,可以使用相对路径: import dir1.dir2.mod
    • 每个非根目录的目录下必须有一个__init__.py文件
    • dir1.dir2.mod的导入路径应该是这样的
    dir0
        dir1
            __init__.py
            dir2
                __init__.py
                mod.py
    
    • init.py文件可以用python程序,也可以是全空的,扮演了包初始化的钩子
    • 当包被导入的时候,会自动执行目录下__init__.py的所有的程序,来创建程序所需要的数据文件 连接数据库等

    from *语句

    • 在__init__.py中使用__all__列表来定义使用from * 语句时,需要导出什么

    小demo

    #分别有三个文件
    # dir1\__init__.py
    print('dir1 init')
    x = 1 
    
    # dir1dir2\__init__.py
    print('dir2 init')
    y = 2 
    
    # dir1dir2mod.py
    print('in mod')
    z = 3
    
    print("------第一次运行---------")
    import dir1.dir2.mod
    print("------第二次运行---------")
    import dir1.dir2.mod
    from importlib import reload
    print("------第三次运行---------")
    reload(dir1)
    reload(dir1.dir2.mod)
    
    # ------第一次运行---------
    # dir1 init 模块导入的时候会自动执行导入路径中init文件中的代码
    # dir2 init 
    # in mod 导入目标模块时会先运行一次模块代码
    # ------第二次运行--------- 模块已经导入一次,再次导入不会生效
    # ------第三次运行--------- 重载后,目标模块重载,但执行过程中的init不会重载
    # dir1 init
    # in mod
    
    # 调用模块中的变量
    print(dir1.x,dir1.dir2.y,dir1.dir2.mod.z) # 1 2 3  
    
    # from...import的灵活调用
    from dir1.dir2 import mod
    print(mod.z)
    
    from dir1.dir2.mod import z
    print(z)
    
    import dir1.dir2.mod as  t
    print(t.z)
    

    import as

    import module as name
    # 想当于import module ; name = module;del module
  • 相关阅读:
    第一篇
    面试题
    CSS样式
    html初步学习
    web开发项目连接访问数据库
    oracle数据库操作之连接
    oracle数据库的基本操作(create创建表,update更新表,drop删除表,select查询表,insert插入数据)
    用js在前台界面进行账户密码的检测,账户和密码符合要求后可进行登录
    用servlet代替js对登录进行检测
    JSP转发和重定向的区别,以及如何获取数据
  • 原文地址:https://www.cnblogs.com/yingyingdeyueer/p/11852952.html
Copyright © 2011-2022 走看看