python模块

一,模块是函数功能的扩展,模块是实现一项或多项功能的程序块,函数和模块都可以实现功能,但模块的范围要比函数广。

打开python安装目录下的lib(例如C:\Users\AppData\Local\Programs\Python\Python35\Lib)文件夹就会看到Python内置模块。

python中在使用模块之前,必须先导入模块,使用import 方法

例如:

>>> import math

>>> math.pi
3.141592653589793

二,Python内置模块也称标准模块,标准库模块无需安装可直接调用

例如:系统相关的sys模块

>>> import sys
>>> sys.version
'3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32) [MSC v.1900 64 bit (AMD64)]'

>>> sys.executable
'C:\\Users\\AppData\\Local\\Programs\\Python\\Python35\\pythonw.exe'

>>> import os

>>> os.getcwd()
'C:\\Users\\AppData\\Local\\Programs\\Python\\Python35'

三,执行模块

两种执行方式:一是将模块里的内容编译成二进制语言,然后执行这些二进制语言
二是直接执行对应模块的二进制语言程序。
把模块编译成二进制语言程序的这个过程叫做字节编译,生成.pyc结尾的文件后缀,

将把程序的字节码保存为一个以 .pyc 为扩展名的文件( ".pyc" 就是编译过的 ".py" 源代码)

Python这样保存字节码是作为一种启动速度的优化。下一次运行程序时,如果你在上次保存字节码之后没有修改过源代码的话,Python将会加载.pyc文件并跳过编译这个步骤。当Python必须重编译时,它会自动检查源文件和字节码文件的时间戳:如果你又保存了源代码,下次程序运行时,字节码将自动重新创建。

四, from ...... import
python中导入一个模块的方法是import,但是import只是导入模块,而并没有导入某个属性或方法,导入模块的功能我们可以用from ...... import
例如:>>> import sys
>>> sys.version
'3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)]'
>>> version
Traceback (most recent call last):
  File "", line 1, in
    version
NameError: name 'version' is not defined
>>> from sys import version
>>> version
'3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)]'
五,from ...... import *
from ...... import只能导入模块的一个功能,如果要导入模块的全部功能就需要from ...... import *
例如
>>> executable
Traceback (most recent call last):
  File "", line 1, in
    executable
NameError: name 'executable' is not defined
>>> sys.executable
'C:\\Python34\\pythonw.exe'
>>> from sys import *
>>> executable
'C:\\Python34\\pythonw.exe'
六.认识主模块
在python函数中,如果一个函数调用其它函数,我们称之为主函数,反之,称为非主函数。
同样地,如果一个模块被直接使用,而没有被调用,称为主模块
如果一个模块被调用,称为非主模块
如果一个模块的__name__属性的值是__main__,说明这个模块是主模块,反之,亦然
如果把__name__看做一个变量,这个变量是系统给出的,用以判断是否是主模块
编写代码:
#-*- coding:UTF-8 -*-
#首先我们分别砍下这个模块在不同场景中的__name__的值
print(__name__)
执行代码:
__main__
>>> import testmain
testmain


编写代码:
if __name__=="__main__":
    print("It's main")
else:
    print("It's not main")
执行代码:
It's main
>>> import testmain
It's not main
七,自定义模块
自定义模块的创建与使用
例如:自定义test.py文件
>>>import test  #调用
>>>test.              #后接test.py里面的函数
八.dir()函数查看指定模块的功能列表
例如:
>>> import os
>>> dir(os)
['F_OK', 'MutableMapping', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 'O_RANDOM', 'O_RDONLY', 'O_RDWR', 'O_SEQUENTIAL', 'O_SHORT_LIVED', 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC', 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO', 'P_OVERLAY', 'P_WAIT', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'W_OK', 'X_OK', '_Environ', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_execvpe', '_exists', '_exit', '_get_exports_list', '_putenv', '_unsetenv', '_wrap_close', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'close', 'closerange', 'cpu_count', 'curdir', 'defpath', 'device_encoding', 'devnull', 'dup', 'dup2', 'environ', 'errno', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fdopen', 'fsdecode', 'fsencode', 'fstat', 'fsync', 'get_exec_path', 'get_handle_inheritable', 'get_inheritable', 'get_terminal_size', 'getcwd', 'getcwdb', 'getenv', 'getlogin', 'getpid', 'getppid', 'isatty', 'kill', 'linesep', 'link', 'listdir', 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 'pipe', 'popen', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 'replace', 'rmdir', 'sep', 'set_handle_inheritable', 'set_inheritable', 'spawnl', 'spawnle', 'spawnv', 'spawnve', 'st', 'startfile', 'stat', 'stat_float_times', 'stat_result', 'statvfs_result', 'strerror', 'supports_bytes_environ', 'supports_dir_fd', 'supports_effective_ids', 'supports_fd', 'supports_follow_symlinks', 'symlink', 'sys', 'system', 'terminal_size', 'times', 'times_result', 'umask', 'uname_result', 'unlink', 'urandom', 'utime', 'waitpid', 'walk', 'write']
>>> os.write


>>> os.walk


>>> os.getcwd
 
dir()函数可以查看对象的功能:
>>> d=[] #新建列表
>>> dir(d)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
 >>> c=['a','b']
>>> dir(c) #查看列表c的功能
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
 从上可以看出 dir()查看属性列表,而不看数据。
>>> d=() #新建元组
>>> dir(d) #查看元组功能
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值