python——模块和包 需要注意的地方
一 模块
1.import
import module: 将执行文件(module)的目录路径插入到sys.path的第一个位置
执行时:
1.创建新的名称空间 2.执行被调用的模块 第二次调用,不会再执行该模块,只是完成一次引用
(import语句是可以在程序中的任意位置使用的,且针对同一个模块很import多次,为了防止你重复导入,python的优化手段是:第一次导入后就将模块名加载到内存了,后续的import语句仅是对已经加载大内存中的模块对象增加了一次引用,不会重新执行模块内的语句)
2
为模块名起别名,相当于m1=1;m2=m1
1 import my_module as sm
2 print(sm.money)
示范用法一:
有两中sql模块mysql和oracle,根据用户的输入,选择不同的sql功能
示范用法二:
为已经导入的模块起别名的方式对编写可扩展的代码很有用,假设有两个模块xmlreader.py和csvreader.py,它们都定义了函数read_data(filename):用来从文件中读取一些数据,但采用不同的输入格式。可以编写代码来选择性地挑选读取模块,例如
示例方法二
3.from ... import...
from 模块 import 变量名
from modname import name1[, name2[, ... nameN]]
import 模块名 【同一目录下可以直接import】 要调用模块内的变量,需要 模块名.变量名 函数调用: 模块名.函数名()
from 模块名 import 变量名1 (或函数名) 只导入了模块名下的变量名1
from 模块名 import * 可以直接引起 模块名下的所有变量名(包括函数名)
用*导入要注意,在使用模块内的变量名时,可能会与执行文件中的变量名(或函数名)相同,发生覆盖, 1.若先定义了本函数中的变量名,后导入模块,执行相同变量名时,引用的是模块内变量名的意义 2.若先导入了模块,后定义了变量名,则引用的是后定义时的意义 (类似定义变量)
二 包(package) 组织模块的方式:包 在python中,包可以理解成一个文件夹,但是每一个文件夹里必须要有一个__init__文件 2.1 from 包 import 模块 2.2 同级目录下的被调用模块之间的相互调用 2.3 if __name__=='__main__':
2.4 from 包.包 import 模块 from 包.包.模块 import 变量名字 2.5 __init__文件的作用 from 包 import 模块 【重要】执行文件时,会将文件所在目录路径,插入到sys.path的第一个位置,此时执行文件中 from 包 import 模块名, from 会从执行文件所在目录下面,也就是执行文件同级目录中找包(如果) 1.文件和包在同一目录下,
- C++工程中常用的宏定义(#define)
- 面向对象系列讲解—认识对象
- 基于 KIF 的 iOS UI 自动化测试和持续集成
- 面向对象系列讲解—面向对象的含义&工厂模式
- 庖丁解牛看委托和事件(续)
- ReactiveCocoa中潜在的内存泄漏及解决方案
- 面向对象系列讲解——混合模式
- 火力全开——仿造Baidu简单实现基于Lucene.net的全文检索的功能
- Go实战--实现简单的restful api
- 特殊字体神器-fontmin,秒杀一切工具
- 庖丁解牛——深入解析委托和事件
- RestQL:现代化的 API 开发方式
- 在递归函数中因不正确使用公共变量而形成死循环
- 用R语言做时间序列分析(附数据集和源码)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法