zoukankan      html  css  js  c++  java
  • 模块初识

    一、模块的概念

    1、什么是模块:一系列功能的集合体

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

    模块的四种存在方式:
        使用python编写的.py文件 
        包:一堆py文件的集合体
        使用c编写并链接到python解释器的内置模块
        已被编译为共享库或DLL的c或c++扩展 

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

     4、为什么要使用模块:

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

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

    import module
    a = 8000
    print(module.b())

    二、起别名

    # 在任何地方都可以导入模块
    
    def fn():
        global m2
        import m2
        print('>>>',m2.num)
    fn()
    print(m2.num)

    1、通过as关键字可以给模块起别名:模块名一旦起别名,原模块名就不能够使用

    # 1、可以简化模块名字
    import mmmmmm2 as my_m2
    print(my_m2.num)
    
    # 2、可以统一功能
    cmd = input('数据库选择 1:mysql | 2:oracle:')
    if cmd == '1':
        # import mysql
        # mysql.excuse()
        import mysql as db
    
    else:
        # import oracle
        # oracle.excuse()
        import oracle as db
    
    db.excuse()

    三、from导入

    1、from 模块名 import 名字1,名字2,名字3

    from m3 import a,b,_c  # 指名道姓的可以导入以_开头的名字

    2、通过*导入:可以将模块中的名字一并导入

    from 模块名 import *
    
    导入的是模块中的__all__这个列表
    1、系统默认该列表不会收录_开头的名字
    2、可以自定义__all__列表来规定外界通过*可以导入的名字  
    
    不建议直接导入*,因为可读性差,且极易出现变量名重名
    from m3 import *
    print(a)
    a()

    3、from导入起别名:一旦起别名,原名就不能再使用 

    from 模块名 import 名字1 as 别名1, 名字2 as 别名2
    

    from m4 import aaaa as a, bbbb as b, cccc as c print(a) # 10 print(b) # 20 print(c) # 30

    四、自行文件与模块的区别

    1、主文件

    import m5
    
    print(m5.money())
    from m5 import money
    money()
    print(money())

    2、调用文件

    print('m5:我被导入执行的')
    
    def money():
        money=1000
        print(money)
        return 123
    
    # __name__:
    # 在py文件作为模块被使用时,__name__为模块名
    # 在py文件自执行时,__name__为字符串'__main__'
    
    
    if __name__ == '__main__':
        print('m5:我是自执行的')   
    else:
        print('m5:我是被导入执行的')
  • 相关阅读:
    DEV获取GridControl当前行
    03002_Http请求协议分析
    雷林鹏分享:CSS 组合选择符
    雷林鹏分享:Redis 字符串(String)
    雷林鹏分享:Redis 键(key)
    雷林鹏分享:CSS 布局
    雷林鹏分享:CSS Float(浮动)
    雷林鹏分享:CSS 布局
    雷林鹏分享:CSS Position(定位)
    雷林鹏分享:CSS Display(显示) 与 Visibility(可见性)
  • 原文地址:https://www.cnblogs.com/zhangguosheng1121/p/10686026.html
Copyright © 2011-2022 走看看