美文网首页
什么是模块

什么是模块

作者: 匿隱 | 来源:发表于2019-02-08 13:00 被阅读0次

    1.什么是模块

    在python中一个py文件就是一个模块

    a.系统模块(标准库) - python系统提供的模块(安装解释器的时候已经导入到解释器中了,使用的时候在代码中直接导入)

    random模块 - 提供随机数
    math模块 - 提供数学运算
    json库 - 提供json数据相关操作
    re模块 - 提供正则表达式相关操作
    socket模块 - 提供python套接字编程
    time模块 - 提供和时间相关的操作
    threading模块 - 提供和线程相关的操作

    b.自定义模块 - 程序员自己创建的py文件

    自己写的模块
    别人写的模块 - 第三方库 (需要先下载到解释器中,然后才能再代码中导入)

    标准库和第三库一般是通过模块提供变量、函数、类

    2.怎么使用模块

    import 模块名 - 在程序中直接导入指定的模块, 导入后可以使用模块中所有的全局变量(包含了变量、函数和类)
                导入后通过"模块名.变量"来使用模块中的内容

    from 模块名 import 变量1, 变量2 - 在程序中导入指定的模块,导入后只能使用import后面的变量
                导入后直接使用变量,不用在前面加'模块名.'

    from 模块名 import * - 在程序中直接导入指定的模块, 导入后可以使用模块中所有的全局变量(包含了变量、函数和类)
                导入后直接使用变量,不用在前面加'模块名.'

    3.导入模块的实质:

    a.不管是使用import还是from-import,导入模块的时候都会执行模块中所有的代码

    b.python中一个模块不会重复导入多次。因为导入的时候系统会自动检查当前模块是否已经导入

    4.怎么阻止模块中的内容被其他模块执行

    将不希望被其他模块执行的代码放在if语句中
    如果希望被其他模块使用的代码就放在if语句的外码
    (这儿的if语句指的是: if name == 'main')

    原理:
    每个模块都有一个name属性, 代表模块名。默认情况下它的值是py文件的文件名。
    当当前模块正在被执行(直接执行)的时候,模块属性name的值就会变成'main'

    1. 系统模块
    import random
    print(random.randint(10, 100))
    
    print('=======import model1之前=======')
    import model1
    import model1
    print('=======import model1之后=======')
    model1.a = 1000
    print(model1.a)
    print(model1.fun1())
    
    # print('=========from model2 import之前=========')
    # from model2 import aa, x
    # print('=========from model2 import之后=========')
    # print('aa:', aa)
    # print(x)
    # # print(model2.func2())   # 不能是用model2中除了aa和x的内容
    
    aa = 'hello'
    from model2 import *
    # 导入model2,并且可以直接使用里面所有的全局变量
    print('aa:', aa)
    print(x)
    func2()
    
    print('==============import model3================')
    import model3
    
    # print(model3.a)
    # print(model3.b)
    

    5.重命名 - 导入模块的时候可以对模块或者模块中的内容重新命名

    import 模块名 as 新模块名
    from 模块名 import 变量名1 as 新变量名1, 变量名2, 变量名3 as 新变量名3

    # import model4 as newMode
    # print(newMode.age)
    
    import threading as TD
    name = 100
    
    from model4 import name as yt_name, age as yt_age
    
    print(name)
    print(yt_name)
    print(yt_age)
    

    相关文章

      网友评论

          本文标题:什么是模块

          本文链接:https://www.haomeiwen.com/subject/brxzdqtx.html