python模块和包

一、模块

1.什么是模块

一个模块就是一个py文件,py文件的文件名就是模块名

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

1)哪些能用

所有在指定if语句外的全局变量

2)怎么使用:需要先导入模块

import 模块名 - 导入后可以使用全局变量,以’模块名.变量’来使用变量
from 模块名 import [变量1,变量2,变量3,…] []* - 导入后只能使用import后面指定的变量,但是可以直接使用变量,没有导入的变量不能使用。*可以使用全部变量,但是不推荐使用,容易引起冲突

# 实例1
import test
print(test.a) # 100
test.func1()

# 实例2
from test import a,b,c
print(a)
print(b)
# print(d) # 导入

# 实例3
from test import *
print(a)
print(b)
#print(d) # 导入

# 实例4:import 模块名 as 新模块名  -  给模块取别名
import test as test1
print(test1.a)

# 实例5:from 模块名 import 变量1 as 新模块名,变量2...  -  给模块的变量取别名
from test import a as t_a,b
a = 50
print(a)
print(t_a)

二、导入模块原理

1.导入模块的原理

当使用import或者from-import导入模块的时候系统会自动将被导入的模块中所有的代码都执行一遍

2.重复导入

重复导入import的时候,系统会自动将被导入的模块中所有代码都执行一遍

3.选择性的执行被导入的内容

在被导入的模块中添加if语句,将不希望被其他模块执行的代码放到if语句中。
if name == ‘main’:
# 这个if语句中的代码在被别的模块导入的时候不会执行
原理:
每个模块都有一个属性:name,这个属性是用来保存当前模块的名字。__name__默认值就是模块名(模块对应的py文件的文件名)。当我们直接执行某个模块的时候,这个模块的__name__属性就会自动变成’main

import test2
import test3

三、包的使用

1.什么是包

包就是一种特殊的文件夹(a.里面的文件都是py文件b.自带一个__init__.py的文件)

1)直接导入
# 实例1:通过包直接导入模块
from package1.shap import circle
def main():
    r = 10
    print(circle.area(10))

if __name__ == '__main__':
    main()

# 实例2:通过包导入模块中的数据
from  package1.shap.circle import area
def main():
    r = 10
    print(area(10))
if __name__ == '__main__':
    main()
2)导入的定制
from package1.shap import c_area, r_area

print(c_area(10))
print(r_area(5,6))

test.py

a = 100
b = 12
c = 122
d = 34
def func1():
    b = 20
    print('函数1')

test1.py

a = 'test2'
print('test2开始执行!')
def fun2():
    print('test2:函数2')

if __name__ == '__main__':
    # 这个if语句中的代码在被别的模块导入的时候不会执行
    print('if语句里面代码')
    fun2()

print('test2结束执行!')

test2.py

print('if语句外面代码')

def main():
    print('程序开始的代码')

if __name__ == '__main__':
    # 这个if语句中的代码在被别的模块导入的时候不会执行
    print('if语句里面代码')
    main()
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值