一般使用import和from...import...导入模块。

以下述spam.py内的文件代码为例。

# spam.py
print('from the spam.py') money = 1000 def read1():
print('spam模块:', money) def read2():
print('spam模块')
read1() def change():
global money
money = 0

一、import 模块名

# run.py
import spam # from the spam.py
import spam

import首次导入模块发生了3件事:

  1. 以模块为准创造一个模块的名称空间
  2. 执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
  3. 在当前执行文件中拿到一个模块名

模块的重复导入会直接饮用之前创造好的结果,不会重复执行模块的文件,即重复导入会发生:spam=spam=模块名称空间的内存地址

# run.py
import spam as sm money = 111111 sm.money
sm.read1() # 'spam模块:1000'
sm.read2
sm.change() print(money) # 1000

导入多个模块

import spam, time, os

# 推荐使用下述方式
import spam
import time
import os

二、from 模块名 import 具体的功能

# run.py

from spam import money

money = 10

print(money)  # 10

from...import...首次导入模块发生了3件事:

  1. 以模块为准创造一个模块的名称空间
  2. 执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
  3. 在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个名字,意味着可以不用加任何前缀而直接使用
  • 优点:不用加前缀,代码更加精简
  • 缺点:容易与当前执行文件中名称空间中的名字冲突

导入文件内所有的功能:

# spam.py

__all__ = ['money', 'read1']  # 只允许导入'money'和'read1'
# run.py
from spam import * # 导入spam.py内的所有功能,但会受限制于__all__

三、import和from...import...的异同

相同点:

  1. 两者都会执行模块对应的文件,两者都会产生模块的名称空间
  2. 两者调用功能时,需要跑到定义时寻找作用域关系,与调用位置无关

不同点

  1. import需要加前缀;from...import...不需要加前缀

最新文章

  1. Postman - 功能强大的 API 接口请求调试和管理工具
  2. MFC快速入门 - 菜单
  3. web api9
  4. EMV内核使用中的常见问题
  5. POJ 1742 Coins DP 01背包
  6. iOS仿京东分类菜单之UICollectionView内容
  7. Eclipse Indigo 3.7.0 安装GIT插件提示 requires 'bundle org.eclipse.team.core(转)
  8. 字符串流sstream[part2/使用同一个字符串流反复读写数据]
  9. 学习笔记--HashMap浅析
  10. js事件(Event)知识整理[转]
  11. Myeclipse下不用dom4j等解析xml文档
  12. Java多线程初学者指南(5):join方法的使用
  13. Hibernate(七)多对一单向关联映射
  14. react redux 相关技术
  15. AppClassLoader和WebAppClasssLoader的坑
  16. 网页分享到facebook
  17. 广州.NET微软技术俱乐部与其他技术群的区别
  18. mac下 chmod 不了文件,可以右键查看文件简介处修改权限
  19. 预测氨基酸替换的致病性及分子机制:MutPred工具的使用
  20. 转:CSS设置HTML元素的高度与宽度的各种情况总结

热门文章

  1. CentOS 安装nginx服务
  2. Bug 28450914 : ORA-600: [KDLRCI_GET_INLINE_DATA] SELECTING FROM CDB_FEATURE_USAGE_STATISTICS
  3. 2019/12/13学习内容摘要(Linux磁盘管理①)
  4. docker工具之基本命令
  5. WPF 中 Path 使用虚线
  6. [CodeForces - 1225D]Power Products 【数论】 【分解质因数】
  7. 安装PS
  8. jenkins构建,拉取不到最新版本代码,报clock of the subversion server appears to be out of sync
  9. koa2 从入门到进阶之路 (六)
  10. vue 客户端渲染和服务端渲染