Python 总结之 import本质

了解import之前,我们得先了解什么是模块。

模块和包

模块:本质就是以.py结尾的python文件 (文件名:test.py,对应的模块名:test),是用来从逻辑上组织python代码(变量,函数,类,逻辑:模块的本质是为了实现一个功能)。

包:本质就是一个目录(必须有__init__.py文件),是用来打包多个模块(.py文件),如果想要导入一个包就是解释(执行)这个包下的__init__.py文件。

导入模块

导入模块主要有两种方式:

1. import model_name

2. from model_name import *

导入方法:

导入指定方法:from module_name import abc

导入模块中的多个方法: from module_name import abc123,abc456

导入模块中的方法:import module_name.abc

导入模块中的变量:import module_name.name

导入多个模块:import module1_name, module2_name

import 本质

我们在test.py中import bitcoin这个模块,其本质意义就是将bitcoin模块中的代码解释一遍(运行一遍)然后赋值给一个变量,这个变量就是bitcoin

from bitcoin import * 相当于将bitcoin模块中的方法给解释了一遍然后放入test.py文件中。

 

 
12031442-66a9a6ed93fea45f.png
 

注意点

1. 模块路径:

>>>import sys

>>>print (sys.path)

结果打印的是默认路径的列表,导入模块时,会按照列表顺序寻找模块。找不到会报错。

因为路径是个列表,所以是可以添加路径的 sys.path.append(),当然导入的路径不是永久的。

2.模块名重用

注意在起名字的时候,不要与库中模块的名字重复,否则当你导入模块的时候可能会导入的.py文件是错误的。

3.导入模块的优化

使用import bitcoin时,text.py中的每一个函数都需要先去找bitcoin模块,然后再去找comp_bitcoin()这个方法,被调用一次就需要找一次,如果调用次数多的话,就需要大量的重复性工作,这样运行程序相对会比较慢。

这里使用from方法来导入,相当于把这个comp_bitcoin()导入到text.py文件中了,这样在调用comp_bitcoin()这个函数的时候,直接就是从本程序中直接调用,相比上一种方式运行速度会快。

4.动态模块导入时两种import的区别

 

 
12031442-a730c79e918a6ba4.png
 

运行代码时会发现:当send.py修改have_girl的值时,两个导入方式的结果是不同的,原因是因为

import  girl 这个可以当做是引用

from girl import have_girl这个可以当做深拷贝

关于引用,浅拷贝和深拷贝 之后会有详解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值