Python学习 Part4:模块
1. 模块是将定义保存在一个文件中的方法,然后在脚本中或解释器的交互实例中使用。模块中的定义可以被导入到其他模块或者main模块。
模块就是一个包含Python定义和语句的文件。文件名就是添加了.py扩展名的模块名。
在当前目录下建立一个包含以下内容的fibo.py文件:

ef fib(n):
a,b=0,1
while b<n:
print(b,end=' ')
a,b=b,a+b
print() def fib2(n):
result=[]
a,b=0,1
while b<n:
result.append(b)
a,b=b,a+b
return result

然后利用import fibo命令导入这个模块,便可直接引入fibo中定义的函数名

>>> import fibo
>>> fibo.fib(100)
1 1 2 3 5 8 13 21 34 55 89
>>> fibo.fib2(100)
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> fibo.__name__
'fibo'

如果频繁使用一个函数,可以赋予一个本地变量:
>>> fib=fibo.fib
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
>>>
2. 深入Python模块
除了包含函数定义以外,模块也可以包含可执行语句,这些语句一般用来初始化模块,他们仅在第一次被导入的地方执行一次。
每个模块都有自己私有的符号表,被模块内所有的函数定义作为全局符号表使用。
还有一种import语句的变体,可以从一个模块中将名字直接导入到当前模块的符号表中,但是这种方式不会把操作的模块名引入到当前符号表中
>>> from fibo import fib,fib2
>>> fib(400)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
>>>
更进一步,还有一种导入模块中定义的所有名称的变体(这会导入那些除了以下划线开头的名称):
>>> from fibo import *
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
>>>
注意:在一个解释器会话中每个模块仅被导入一次,所以,如果修改了模块,必须重启解释器-或者如果只是一个想要交互测试的模块,使用import.reload()方法。例如:
>>> import imp
>>> imp.reload(modulename)
2.1 模块的搜索路径
当一个名spam的模块被导入时,解释器首先会在当前目录搜索一个名为spam.py的文件,然后是在环境变量PYTHONPATH中定义的目录列表。如果没有定义PYTHONPATH,或者按照里面的路径没有找到文件,解释器会继续在Python默认安装路径中搜索。
实际上,模块都是在变量sys.path定义的目录列表中查找:
>>> import sys
>>> sys.path
['', 'C:\\Python33\\Lib\\idlelib', 'C:\\Windows\\system32\\python33.zip', 'C:\\Python33\\DLLs', 'C:\\Python33\\lib', 'C:\\Python33', 'C:\\Python33\\lib\\site-packages']
在每个Python解释器中,变量sys.ps1和sys.ps2分别定义了主提示符和次提示符使用的字符串(仅在Python命令行有效,在Python IDLE 中无效)

>>> import sys
>>> sys.ps1
'>>> '
>>> sys.ps2
'... '
>>> sys.ps1='>:'
>:print('Yuck!')
Yuck!
>:

Python学习 Part4:模块的更多相关文章
- Python学习--Selenium模块
1. Python学习--Selenium模块介绍(1) 2.Python学习--Selenium模块学习(2) 其他: 1. Python学习--打码平台
- Python学习--Selenium模块学习(2)
Selenium的基本操作 获取浏览器驱动寻找方式 1. 通过手动指定浏览器驱动路径2. 通过 `$PATH`环境变量找寻浏览器驱动 可参考Python学习--Selenium模块简单介绍(1) 控制 ...
- Python学习---重点模块的学习【all】
time [时间模块] import time # print(help(time)) # time模块的帮助 print(time.time()) # 时间戳 print(time.cloc ...
- Python学习之模块进程函数详解
今天在看<Beginning Linux Programming>中的进程相关部分,讲到Linux几个进程相关的系统函数: system , exec , fork ,wait . Pyt ...
- python学习——常用模块
在学习常用模块时我们应该知道模块和包是什么,关于模块和包会单独写一篇随笔,下面先来了解有关在python中的几个常用模块. 一.什么是模块 常见的场景:一个模块就是一个包含了python定义和声明的文 ...
- Python学习之模块基础
模块就是程序 编写以下简单代码 print('hello python') 并将py文件保存在c盘的python(假设新建)文件下,通过pycharm的Terminal 或者windom命令窗口调出p ...
- python学习之模块导入,操作邮件,redis
python基础学习06 模块导入 导入模块的顺序 1.先从当前目录下找 2.当前目录下找不到,再从环境变量中找,如果在同时在当前目录和环境变量中建立相同的py文件,优先使用当前目录下的 导入模块的实 ...
- Python学习——struct模块的pack、unpack示例
he struct module includes functions for converting between strings of bytes and native Python data t ...
- python学习day15 模块(重点)
模块(重点) python2,与py3的区别 py2:range() 在内存中立即把所有的值都创建,xrange() 不会再内存中立即创建,而是在循环时边环边创建. py3:range() 不会再内存 ...
随机推荐
- iOS设备中垂直同步开启后的帧率计数
因为iOS设备的垂直同步总是开启的所以显得帧计数意义没啥意义. 帧计数给你一个多个帧中的平均数,现实中,你帧速率只能是60,30,20,15,12以及6fps等各个常数中的一个.所有这些值都是60的因 ...
- Leetcode_154_Find Minimum in Rotated Sorted Array
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43416613 Suppose a sorted array ...
- eclipse搭建ssh后台
SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题.下面我介绍一下SSH框架搭建的全过程. 第一步:准备工作. 下载好eclipse,Struts2,Spring, ...
- ITU-T E.800 有关服务质量(QoS)的术语定义
摘要 ITU-T E.800建议书为服务质量(QoS)的研究和管理提供了一套通用术语.本建议书列出的与QoS相关的技术和非技术术语旨在代表电信市场所有各方(即用户.服务提供商.制造商和监管机构)的利益 ...
- Concurrent包常用方法简介
1 Executor接口 留给开发者自己实现的接口,一般情况下不需要再去实现.它只有一个方法 void execute(Runnable command) 2 ExecutorService接口 它继 ...
- ERP-非财务人员的财务培训教(三)------公司/部门预算编制与评价
一.预算管理中的行为问题 二.编制预算中的问题 三.经营计划与预算制度 第一节 经营目标 第二节 预算编制的内容及说明 第三节 推行预算制度的组织 第 ...
- OpenCV——PS 滤镜, 曝光过度
算法原理可以参考: PS 滤镜,曝光过度 #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <io ...
- Graph Cuts学习笔记2014.5.16----1
进行了一段时间的论文学习后,现在下载了一些代码,准备从OpenCV跟matlab两个方面着手搭建自己的图像分割平台,计划耗时一个月左右的时间! 昨天去西工大,听了一场Graph Asia的报告,里面有 ...
- eclipse下载指南
官网下载地址 下载https://www.eclipse.org/downloads/ 官网https://www.eclipse.org/ 最新版本 Eclipse OXYGEN Eclipse O ...
- 多重影分身——C#中多线程的使用三(调用方法和传参)
对Thread: 1.使用ThreadStart static void Main(string[] args) { Thread th1=new Thread(new ThreadStart(Say ...