python 之 模块
在python模块,是一个python文件,以.py结尾,包含了python对象定义 和python语句
通过import语句 ,语法
import module1[,module2,module3,.....]
一个模块只会被导入一次,不管你执行了多少次import.这样可以防止导入模块被一遍又一遍的执行
From ..... import 语句,语法
from module import fun1[,fun2,fun3....]
案例:
from support import print_name,print_func
print_name("李四")
搜索路径
当导入一个模块,python解析器对模块位置的搜索顺序是:
1.当前目录(是当前项目的路径)
2.如果不在当前目录,python则搜索在shell变量pythonpath下的每个目录(可以查看电脑属性的环境变量,若是找不到可能被隐藏,可以直接c盘窗口输入路径)
3.如果都找不到,python会查看默认路径 。unix下,默认路径一般为/user/local/python
模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,pythonpath和由安装过程决定的默认目录
4.可以通过sys.path.append()函数
例如要调用的模块在E:\pyproject\append下有support.py文件
sys.path.append("E:\\pyproject\\append") import support
dir函数
一个排好序列的字符串列表,内容是模块里定义过的函数
import math content=dir(math) print(content) //得到所有该引用的内置函数
globals()和locals()函数
globals()在函数中调用,返回所在函数里能访问全局名字
locals()在函数中调用,返回所在函数里该函数能访问的命名
两个函数的返回类型都是字典,所以名字都能用keys()函数获取
reload()函数 语法:
reload(module_name) //若是想让模块红心导入可以使用此函数
函数笔记
系统相关的信息模块: import sys sys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象. sys.stdin.readline() 从标准输入读一行 sys.stdout.write("a") 屏幕输出a sys.exit(exit_code) 退出程序 sys.modules 是一个dictionary,表示系统中所有可用的module sys.platform 得到运行的操作系统环境 sys.path 是一个list,指明所有查找module,package的路径. 操作系统相关的调用和操作: import os os.environ 一个dictionary 包含环境变量的映射关系 os.environ["HOME"] 可以得到环境变量HOME的值 os.chdir(dir) 改变当前目录 os.chdir('d:\\outlook') 注意windows下用到转义 os.getcwd() 得到当前目录 os.getegid() 得到有效组id os.getgid() 得到组id os.getuid() 得到用户id os.geteuid() 得到有效用户id os.setegid os.setegid() os.seteuid() os.setuid() os.getgruops() 得到用户组名称列表 os.getlogin() 得到用户登录名称 os.getenv 得到环境变量 os.putenv 设置环境变量 os.umask 设置umask os.system(cmd) 利用系统调用,运行cmd命令 内置模块(不用import就可以直接使用)常用内置函数: help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝 eval_r(str) 表示合法的python表达式,返回这个表达式 dir(obj) 查看obj的name space中可见的name hasattr(obj,name) 查看一个obj的name space中是否有name getattr(obj,name) 得到一个obj的name space中的一个name setattr(obj,name,value) 为一个obj的name space中的一个name指向vale这个object delattr(obj,name) 从obj的name space中删除一个name vars(obj) 返回一个object的name space。用dictionary表示 locals() 返回一个局部name space,用dictionary表示 globals() 返回一个全局name space,用dictionary表示 type(obj) 查看一个obj的类型 isinstance(obj,cls) 查看obj是不是cls的instance issubclass(subcls,supcls) 查看subcls是不是supcls的子类 ################## 类型转换 ################## chr(i) 把一个ASCII数值,变成字符 ord(i) 把一个字符或者unicode字符,变成ASCII数值 oct(x) 把整数x变成八进制表示的字符串 hex(x) 把整数x变成十六进制表示的字符串 str(obj) 得到obj的字符串描述 list(seq) 把一个sequence转换成一个list tuple(seq) 把一个sequence转换成一个tuple dict(),dict(list) 转换成一个dictionary int(x) 转换成一个integer long(x) 转换成一个long interger float(x) 转换成一个浮点数 complex(x) 转换成复数 max(...) 求最大值 min(...) 求最小值