zoukankan      html  css  js  c++  java
  • Python之浅谈模块

    模块的四种形式

    什么是模块

    ​ 模块就是一个py文件, 这个py文件有一大堆函数

    1. 自定义模块,common.py就叫做common模块
    2. 第三方模块: 需要自己安装 13万个第三方库 ,无所不能,写库(弄得更简单)
    3. 内置模块: python解释器自带的,不需要安装
    4. 包--> 含有__inti__.py的文件夹,一种特殊的模块(解决了一个问题)

    import和from......import

    import首次导入模块发生了3件事:

    1. 以模块为准创造一个模块的名称空间

    2. 执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间

    3. 在当前执行文件中拿到一个模块名

    from...import...首次导入模块发生了3件事:

    1.以模块为准创造一个模块的名称空间
    2.执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
    3.在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个名字,意味着可以不用加任何前缀而直接使用

    循环导入

    # m1.py
    print('from m1.py')
    from m2 import x
    
    y = 'm1'
    #在运行m1时会去m2中找x但在第二行时又会去m1中找y,这样就会造成死循环,并报错
    
    # m2.py
    print('from m2.py')
    from m1 import y
    
    x = 'm2'
    #在运行m2时会去m1中找y但在第二行时又会去m2中找x,这样就会造成死循环,并报错
    
    
    #解决方法
    
    # m1.py
    print('from m1.py')
    
    
    def func1():
        from m2 import x
        print(x)
    
    
    y = 'm1'
    
    # m2.py
    print('from m2.py')
    
    def func1():
        from m1 import y
        print(y)
    
    
    x = 'm2'
    
    

    模块的搜索路径

    模块其实就是一个文件,如果要执行文件,首先就需要找到模块的路径(某个文件夹)。如果模块的文件路径和执行文件不在同一个文件目录下,我们就需要指定模块的路径。

    模块的搜索路径指的就是在导入模块时需要检索的文件夹。

    导入模块时查找模块的顺序是:

    1. 先从内存中已经导入的模块中寻找
    2. 内置的模块
    3. 环境变量sys.path中找

    Python文件的两种用途

    python文件总共有两种用途,一种是执行文件;另一种是被当做模块导入。

    执行文件: 当前运行的文件就叫做执行文件

    模块文件: 运行05 Python文件的两种用途.py文件, m1就是模块文件

    执行文件和模块文件是相对的.

    random模块

    import random
    
    # 最常用的方法
    print(random.random())  # 0-1的随机数
    
    print(random.randint(0,100))  # 0-100的整数
    
    lt = [1,2,3,4,5,]
    random.shuffle(lt)  # 打乱容器类元素  --> 列表和字典
    print(lt)
    
    # 了解
    
    print(random.randrange(1,10))  # 1,9之内的整数
    
    print(random.uniform(1,3))  # 1-3的小数
    
    print(random.choice([1,2,3,'a','b']))  # 选一个
    
    print(random.sample([1,2,3,'a','b'],2))  # 选2个
    
    
  • 相关阅读:
    alpha版、beta版、rc版的意思
    回车符(CR)与换行符(LF), ' '和' '的区别
    html 图像映射(一个图像多个连接)
    前端工程师需要明白的「像素」
    通过设置Ionic-Cli代理解决ionic serve跨域调试问题
    Bootstrap Table使用方法详解
    写给移动开发者的 React Native 指南
    Mac中搭建 iOS 的 React Native 环境
    Windows版本搭建安装React Native环境配置及相关问题
    javascript获取wx.config内部字段解决微信分享
  • 原文地址:https://www.cnblogs.com/MrYang161/p/11359832.html
Copyright © 2011-2022 走看看