zoukankan      html  css  js  c++  java
  • 模块、起别名、from导入

    模块

    '''
    模块:一系列功能的集合体

    定义模块:创建一个py文件就是一个模块,该py文件名就是模块名

    使用模块:在要使用模块的文件中,通过 import 模块名 来导入模块
    '''

    '''
    import module
    # 1.编译执行模块所对应的py文件,形成对应的pyc文件
    # 2.产生该模块自己的全局名称空间
    # 3.在使用该模块的全局名称空间中产生一个名字(导入的模块名)
    '''

    '''
    # 注:
    # 1.每一个文件都会产生自己的全局名称空间,且相互不影响
    # 2.多次导入,只会编译执行模块一次,将其加载到内存,之后的都是直接对名字的引用
    '''

    '''
    优点:
    1.从文件级别组织代码,使同特性的功能能统一管理
    2.可以使用系统或第三方模块(拿来主义),来提高开发效率
    '''

     

    起别名

    # 通过as关键字可以给模块起别名: 模块名一旦起别名,原模块名就不能再使用
    # 1.可以简化模块名字
    import mmmmmmmmmmmmmmmmmm3 as my_m3
    print(my_m3.num)
    # 2.可以统一功能
    cmd = input('数据库选择 1:mysql | 2:oracle:')
    if cmd == '1':
       import mysql as db
       # mysql.excuse()
    else:
       import oracle as db
       # oracle.excuse()
    db.excuse()

     

     

    from导入

    from 模块名 import 名字1, 名字2, ..., 名字n
    # 可以指名道姓导入模板中所有想导入的名


    from  模块名 import *
    # 导入的是模块中的__all__这个列表
    # 1、系统默认该列表不会收录_开头的名字
    # 2、可以自定义__all__列表来规定外界通过*可以导入的名字


    # 不建议直接导入 *,因为可读性差,且极容易出现变量重名
    # 模块中有 名字a
    from  模块名 import *
    # 可以使用模块中的a
    a = 20
    # 模块中的a就被覆盖了,且在代码上还不能直接看出


    # 其别名
    from 模板名 import 名字1 as 别名1, ..., 名字n as 别名n

     

    自执行与模块区别

    # __name__:
    # 1.在py文件作为模块被使用时,__name__为模块名
    # 2.在py文件自执行时,__name__为字符串 '__main__'

    print("共有逻辑")
    if __name__ == '__main__':
       # 所有自执行的逻辑
       print("m6: 我是自执行的")
       a = 10  # 产生的是全局的名字
    else:
       # 所有模块的逻辑
       print("m6: 我被导入执行的")
       print(a)  # 会报错:走else就不可能走if,所以a压根没产生

     

    大总结

    '''
    模块的概念:一系列功能的集合体
    为什么要使用模块:使用模块后的优点:1文件角度考虑代码,2拿来主义,提供开发效率
    py中实现模块的方式:4种,重点:py文件


    定义模块:新建一个py文件:文件名就是模块名,尽量采用全英文,可以结合数字与下划线
    使用模块:可以不用起别名,但一旦起别名,原名字就不能再使用了
    -- import 模块名 as 别名
    -- from 模块名 import 名字 as 别名

    自执行文件与模块区分:__name__
    '''

     

  • 相关阅读:
    扫雷游戏:C++生成一个扫雷底板
    为《信息学奥赛一本通》平反(除了OJ很差和代码用宋体)
    关于最大公约数欧几里得算法辗转相除及最小公倍数算法拓展C++学习记录
    【Python】如何用较快速度用Python程序增加博客访问量——CSDN、博客园、知乎(应该包括简书)
    STL学习笔记之next_permutation函数
    C++集合容器STL结构Set
    11111111111
    express + mysql实践
    express实践
    ws:一个 Node.js WebSocket 库
  • 原文地址:https://www.cnblogs.com/maoruqiang/p/10672974.html
Copyright © 2011-2022 走看看