day 12 模块 module

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

从封装的角度看: 
函数是对功能的封装  
模块可以通过多个函数对不同的功能进行封装,还可以通过全局变量对数据进行封装

0.模块的分类: 系统模块(内置模块)、第三方库(别人写的)、自定义模块

1.模块的导入

a.import 模块名 / import 模块名 as 新的模块名 --- 可以通过'模块名.'的方式去使用这个模块中所有的全局变量

b.from 模块名 import 全局变量1 as 新名1,全局变量2 as 新名2,... --- 带入指定模块中指定的全局变量,导入后直接使用全局变量

注意: 重命名后,原名不能使用

===========导入方式1===========

# import keyword
# import random
# import math
# import test
#
# print(test.test1_a * 3)
# test.test1_a = 200
# print(test.test1_a)
#
# test.test1_func1()

============导入方式2==========

# from random import randint
# print(randint(10, 30))
#
# from test import test1_func1, test1_a
# test1_func1()
#
# print(test1_a)

============导入模块并重命名==========

# import test as TS
# print(TS.test1_a)
# TS.test1_func1()

# b = 'python'
# from test import b as t_b, test1_a as t_a
#
# print(b, t_b, t_a)

3.导入模块的原理:当代码执行到import或者from - import的时候,会自动将对应的模块中的代码全部执行一遍

同一个模块导入多次不会执行多次(放心的导入!)

# print('++++++++++++++')
# import test
# import test
# from test import test1_a
# import test2
#
# print(test1_a, test.test1_func1())
# print('++++++++++++++')
print('mudule:', __name__)
from test2 import yt_sum
print(yt_sum(1, 1))

import PIL
import requests

4.阻止导入: 将需要阻止被别的模块导入的代码放到以下if语句中

"""
if name == 'main':
需要阻止导入的代码段

原理: 每个模块都有一个属于自己的name属性,用来保存当前模块的模块名。默认情况下name的值就模块对应的py文件
的文件名。当我们直接运行某个模块的时候,对应的模块的name会自动变成'main',其他模块是默认值。
"""

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容