14-01 模块

01 模块

1.什么是模块

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

2.如果在一个模块中去使用另外一个模块中的内容

使用前提: 1) 需要被别的模块使用的模块的模块名必须符合变量名的要求;
2)导入模块 - 模块里面的内容必须要先导入再使用

3.怎么导入模块

新建一个test1.py文档

print('=========start==========')
a = 100

name = '小明'

def func1():
    print('test1中的函数')

print('=========end==========')

1)导入方式1: 模块名.xxx

  • import 模块名 - 导入指定模块,导入后可以通过’模块名.xxx’的方式使用这个模块中的全局变量
# =======导入方式1=======
import test1

print(test1.a)
print(test1.name)
test1.func1()

2) 导入方式2: 直接使用

  • from 模块名 import 变量1, 变量2, 变量3, … - 导入指定模块,导入后可以直接使用指定变量
  • from 模块名 import * - 导入指定模块,导入后可以直接使用模块中所有的全局变量变量
# =======导入方式2=======
from test1 import a, func1
print(a)
func1()
# print(name)   # 报错,没导入的变量不能直接使用

from test1 import *
print(a)
func1()

3) 导入方式3: 对模块重命名

  • import 模块名 as 新模块名
# =======导入方式3=======
import test1 as t1
print(t1.name)
print(t1.a)
t1.func1()

4) 导入方式4: 对变量重命名

  • from 模块名 import 变量1 as 新变量1, 变量2 as 新变量2,…
# =======导入方式4=======
from test1 import name, a as A, func1
print(A)

02 导入模块的原理

1.导入原理

“”"
不管是import还是from-import导入模块的时候,系统都会自动进入指定的模块,将模块中的代码全部执行一遍。

# import test1
# from test1 import a

2.阻止导入

导入模块的时候,不让模块中的所有代码都执行,只执行需要执行的部分。

阻止的方法: 在被导入的模块中添加main对应的if语句,把不希望被别的模块执行的代码放到if语句里面。
新建一个test2.py文档

def download(name) :
    print(f'连接{name}电影对应的服务器')
    print('服务器传输数据')
    print('客户端接收数据')
    print(f'保存{name}数据')
    print( '================')



# 这个if语句里面的代码在被别的模块导入的时候不会执行。
if __name__ == '__main__':    # 输入main回车打印出来
    for x in range(100):
        download(f'电影{x}')
  • 注意: 同一个模块如果导入多次,模块中的代码只会执行一次(自动查重)
# 只会执行一个import test1
import test1
import test1  

from test2 import download
download('肖生克的救赎')

"""
=========start==========
=========end==========

连接肖生克的救赎电影对应的服务器
服务器传输数据
客户端接收数据
保存肖生克的救赎数据
================
"""

03 包

1.什么是包

python将包好了__init__.py文件的文件夹叫做包,它是专门用来管理模块的。

  • 新建一个Python Package,里面自带一个__init__.py文件
x = 1000
  • 在Python Package里新建一个test3.py文件
b = 111

age = 18

def func2():
    print('test3中的函数')

2.怎么使用包中的模块中的内容

  1. import 包名 - 直接导入包,导入后可以用’包名.xxx’去使用包中__init__.py文件中的所有全局变量
# ==========导入方式1==========
import file
print(file.x)
  1. import 包名.模块名 - 导入包中指定的模块,导入后可以用’包名.模块名.xxx’去使用指定模块中的所有的全局变量
# ==========导入方式2==========
import file.test3 as test3
print(test3.b)
print(test3.age)
test3.func2()
  1. from 包名 import 模块名, 模块名2,…

# ==========导入方式3==========
from file import test3
print(test3.b)
print(test3.age)
test3.func2()

  1. from 包名.模块名 import 变量1, 变量2, …
# ==========导入方式4==========
from file.test3 import b, func2
print(b)
func2()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值