import和from...import
2024-09-03 02:29:29
一般使用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件事:
- 以模块为准创造一个模块的名称空间
- 执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
- 在当前执行文件中拿到一个模块名
模块的重复导入会直接饮用之前创造好的结果,不会重复执行模块的文件,即重复导入会发生: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件事:
- 以模块为准创造一个模块的名称空间
- 执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
- 在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个名字,意味着可以不用加任何前缀而直接使用
- 优点:不用加前缀,代码更加精简
- 缺点:容易与当前执行文件中名称空间中的名字冲突
导入文件内所有的功能:
# spam.py
__all__ = ['money', 'read1'] # 只允许导入'money'和'read1'
# run.py
from spam import * # 导入spam.py内的所有功能,但会受限制于__all__
三、import和from...import...的异同
相同点:
- 两者都会执行模块对应的文件,两者都会产生模块的名称空间
- 两者调用功能时,需要跑到定义时寻找作用域关系,与调用位置无关
不同点
- import需要加前缀;from...import...不需要加前缀
最新文章
- Postman - 功能强大的 API 接口请求调试和管理工具
- MFC快速入门 - 菜单
- web api9
- EMV内核使用中的常见问题
- POJ 1742 Coins DP 01背包
- iOS仿京东分类菜单之UICollectionView内容
- Eclipse Indigo 3.7.0 安装GIT插件提示 requires 'bundle org.eclipse.team.core(转)
- 字符串流sstream[part2/使用同一个字符串流反复读写数据]
- 学习笔记--HashMap浅析
- js事件(Event)知识整理[转]
- Myeclipse下不用dom4j等解析xml文档
- Java多线程初学者指南(5):join方法的使用
- Hibernate(七)多对一单向关联映射
- react redux 相关技术
- AppClassLoader和WebAppClasssLoader的坑
- 网页分享到facebook
- 广州.NET微软技术俱乐部与其他技术群的区别
- mac下 chmod 不了文件,可以右键查看文件简介处修改权限
- 预测氨基酸替换的致病性及分子机制:MutPred工具的使用
- 转:CSS设置HTML元素的高度与宽度的各种情况总结
热门文章
- CentOS 安装nginx服务
- Bug 28450914 : ORA-600: [KDLRCI_GET_INLINE_DATA] SELECTING FROM CDB_FEATURE_USAGE_STATISTICS
- 2019/12/13学习内容摘要(Linux磁盘管理①)
- docker工具之基本命令
- WPF 中 Path 使用虚线
- [CodeForces - 1225D]Power Products 【数论】 【分解质因数】
- 安装PS
- jenkins构建,拉取不到最新版本代码,报clock of the subversion server appears to be out of sync
- koa2 从入门到进阶之路 (六)
- vue 客户端渲染和服务端渲染