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个

原文地址:https://www.cnblogs.com/MrYang161/p/11359832.html