zoukankan      html  css  js  c++  java
  • 模块

    模块

    一:什么是模块?

    模块就是一个功能的集合体,不是用来直接运行,而是用来被导入使用的
    

    二:模块的三大来源

    内置模块
    第三方模块
    自定义模块
    

    三:模块分为四种类别

    一个py文件就是一个模块
    一个文件夹也是一个模块(包)
    已被编译为共享库或DLL的C或C++扩展
    使用C编写并链接到python解释器的内置模块
    

    四:为什么要用模块?

    使用别人的模块:提升开发效率
    自定义模块:别人功能不够用了,需要自己写,或者不符合业务逻辑
    

    五:如何自定义模块?

    # spam.py  这个模块是spam
    print('from the spam.py')
    money = 10000
    
    def read1():
        print("spam模块:", money)
        
    def read2():
        print("spam模块")
        read1()
        
    def change():
        golbal money
        money = 0
    

    六:导入模块

    # 这个文件名是test.py,模块名则是spam
    
    x = 11
    
    import spam  # 首次导入spam模块
    # 触发被导入模块的运行,产生一个模块的名称空间,把模块中的名字放进去,会在当前执行文件中得到一个名字span,该名字是指向被导入模块的名称空间
    # 多次或者重复导入,名字spam直接引用首次导入的名称空间,不会再执行模块内的代码
    import spam
    import spam
    
    
    money = 1000
    spam.change() 
    spam.read1()  #  spam模块: 10000
    print(money)  # 1000
    def read1():
        print("run test.py---read1")
    
    read1()  #run test.py---read1
    

    一:一行导入多个模块

    import spam,m1,m2,m4  # 这个是不推荐的
    

    二:给导入模块起一个别名

    import spam as sm
    
    
    
    # mysql.py
    
    def sql_query():
        print("from mysql query")
    
    # sqllit.py
    
    def sql_query():
        print('from sqlit query')
        
    
    
    query_sql.py
    
    db_type = input(">>>").strip()
    if db_type == mysql:
        import mysql as db
    elif db_type == 'sqllite':
        import sqlite import db
        
    db.sql_query() # 
        
    
    # 文件名是spam模块,模块名是spam
    
    x = 111
    
    from spam import money,read1,read2
    from spam import money,read1,read2
    
    money = 111 # 覆盖了导入的spam模块的money属性
    print(money) # 111 
    
    
    # 一行导入多个名字
    from spam import money,read1
    
    # 为导入模块起别名
    from spam import money as m
    print(m)
    
    # 把模块内的所以属性导入进来
    from spam import *
    print(money)
    print(read1)
    print(read2)
    print(change)
    
  • 相关阅读:
    Flask第31课——include标签
    flask第30篇——宏macro和import标签
    HTML第三课——css盒子
    HTML第二课——css【2】
    HTML第二课——css
    HTML第一课——基础知识普及【2】
    转一篇数据库面试题
    自创建数字证书,安装到浏览器
    【转】Base64算法详解
    【转】二维码生成原理
  • 原文地址:https://www.cnblogs.com/wait59/p/13368334.html
Copyright © 2011-2022 走看看