python3导入模块原理_Python函数-导入模块的顺序及原理

一、模块

什么是模块?

模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称。

模块分为三种:

自定义模块

内置标准模块:python自带的

开源模块(第三方)

导入模块的本质,就是把python文件拿过来执行一次。

1、import导入

我有俩文件a.py和b.py,运行b.py,获得a里面得内容:

name='a.py'

deffunc():print('这个是a.py里面的函数')for i in range(5):print(i)

func()

import a #import一个模块,就是把这个模块里的代码执行一遍

运行结果:

01

2

3

4这个是a.py里面的函数

也可起别名:

name='a.py'

deffunc():print('这个是a.py里面的函数')

import a as apy #起别名

print(apy.name)

apy.func()

运行结果:

a.py

这个是a.py里面的函数

2、 if __name__=='__main__' 的运用

# if __name__=='__main__':#在自己里执行是__name__;在别家执行是a(文件名)

name = 'a.py'

deffunc():print('这个是a.py里面的函数')print(__name__)if __name__ == '__main__': #在自己里执行是__name__;

#在别家执行是a(文件名)

for i in range(5):

func()

importaprint(a.name)

a.func()

运行结果:

__main__这个是a.py里面的函数

这个是a.py里面的函数

这个是a.py里面的函数

这个是a.py里面的函数

这个是a.py里面的函数

a

a.py

这个是a.py里面的函数

3、from导入,跟上面一样一样的

(1)用from导入func

name = 'a.py'

deffunc():print('这个是a.py里面的函数')print(__name__)if __name__ == '__main__': #在自己里执行是__name__;

#在别家执行是a(文件名)

for i in range(5):

func()

from a import func #用from导入func

func()

运行结果:

a

这个是a.py里面的函数

(2)用from导入func和name

name = 'a.py'

deffunc():print('这个是a.py里面的函数')print(__name__)if __name__ == '__main__': #在自己里执行是__name__;

#在别家执行是a(文件名)

for i in range(5):

func()

from a import func, name #用from导入func和name

func()print(name)

运行结果:

a

这个是a.py里面的函数

a.py

二、导入模块的顺序:

1、从当前目录下找

2、从python的环境变量里面找

import一个文件夹的时候,就是执行这个文件夹下面的__init__.py

importsysprint(sys.path) #环境变量

sys.path.append(r'C:\Users\79954\PycharmProjects\ssz\day5') #r 源字符 加环境变量,加的时目录

sys.path.insert(0, r'C:\Users\79954\PycharmProjects\ssz\day5') #insert指定位置

运行结果:

['C:\\Users\\79954\\PycharmProjects\\ssz\\day5', 'C:\\Users\\79954\\PycharmProjects\\ssz', 'C:\\Program Files\\JetBrains\\PyCharm 2020.1.4\\plugins\\python\\helpers\\pycharm_display', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\python37.zip', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\DLLs', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\lib', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages', 'C:\\Program Files\\JetBrains\\PyCharm 2020.1.4\\plugins\\python\\helpers\\pycharm_matplotlib_backend', 'C:\\Users\\79954\\PycharmProjects\\ssz\\day5']

如以上运行结果所示:Pycharm也会自动帮咱加了环境,所以我们就可以导入ssz这个目录下的任何目录及文件了:

一个例子:

from day5 import tools #我们就可以导入ssz下的任何一个目录,pycharm会有提示

print(tools.test('s'))

deftest(s):return s + 'hhhhhhh'

运行结果:

shhhhhhh

再来一个例子:

from day2 import HelloWold

运行结果:

hello word!

蔡蔡长得非常"帅气、高大威猛"let'go,昌姐美丽又漂亮,因为是个“人妖”!!!

导入目录其他方式:

importsys#import day5#result = day5.tools.test('ggg') # 报错(AttributeError: module 'day5' has no attribute 'tools')

from day5 import tools #这种方式没问题

print(tools.test('ggg'))from day5.tools import test #这种方式没问题

result = test('ggg')print(result)

deftest(s):return s + 'hhhhhhh'

运行结果:

ggghhhhhhh

ggghhhhhhh

例子:

1,在day6目录下建一个__init__.py,写点内容(一般创建文件夹自带了)

2,在day5目录下的a.py里面import day5

__init__

结果: import 一个文件夹时,就是执行这个文件夹下的__init__.py

1)、我们首先在day6下建一个tools.py

deftest(s):return s + 'hhhhhhh'

deftest2():print('ooooo')

2)然后在day5文件下建目录文件.py

importday6

result= day6.tools.test('xxx')

day6.tools.test2()#可多个导入

print(result)

运行结果:

__init__ooooo

xxxhhhhhhh

三、第三方模块安装:

python的安装目录

python安装目录下面的scripts目录

首先,得确定环境是否正常(pip --help):

2010194-20200814230423916-2118070624.png

1、手动安装

2010194-20200509215140078-1273832057.png

2010194-20200510205847402-1222367761.png

2、带 .whl 结尾的需找到安装路径:pip install /Users/........

3、zip文件

先解压

进入解压目录

python setup.py install

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值