如果你想要在其他程序中重用很多函数,那么你该如何编写程序呢?你可能已经猜到了,答案是使用模块。模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。
        模块可以从其他程序 输入 以便利用它的功能。这也是我们使用Python标准库的方法。

首先,我们利用import语句 输入 sys模块。基本上,这句语句告诉Python,我们想要使用这个模块。sys模块包含了与Python解释器和它的环境有关的函数。当Python执行import sys语句的时候,它在sys.path变量中所列目录中寻找sys.py模块。如果找到了这个文件,这个模块的主块中的语句将被运行,然后这个模块将能够被你 使用 。sys.argv包含了
命令行参数 的列表,即使用命令行传递给你的程序的参数。

字节编译的.pyc文件
       输入一个模块相对来说是一个比较费时的事情,所以Python做了一些技巧,以便使输入模块更加快一些。一种方法是创建 字节编译的文件 ,这些文件以.pyc作为扩展名。字节编译的文件与Python变换程序的中间状态有关. 当你在下次从别的程序输入这个模块的时候,.pyc文件是十分有用的——它会快得多,因为一部分输入模块所需的处理已经完成了。另外,这些字节编译的文件也是与平台无关的。所以,现在你知道了那
些.pyc文件事实上是什么了。

from..import语句
         如果你想要直接输入argv变量到你的程序中(避免在每次使用它时打sys.),那么你可以使用from sys import argv语句。如果你想要输入所有sys模块使用的名字,那么你可以使用from sys import *语句。这对于所有模块都适用。一般说来,应该避免使用from..import而使用import语句,因为这样可以使你的程序更加易读,也可以避免名称的冲突。

模块的__name__
        每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。

例 : 使用模块的__name__

#!/usr/bin/python
# Filename: using_name.py
if __name__ == '__main__':
print 'This program is being run by itself'
else:
print 'I am being imported from another module'
 

每个Python模块都有它的__name__,如果它是'__main__',这说明这个模块被用户单独运行,我们可以进行相应的恰当操作。

创建自己的模块:

这个有些类似于java的生存的.class文件.只不过Python直接的用.py文件来做模块. 每次使用的时候就只要 import modulaName

#!Mudola.pydef HelloWorld():print 'Hello World!'
#end of HelloWorld..s = 'i\'m a string'    #testImportMudola.pyimport MudolaMudola.HelloWorld()print Mudola.s

输出:

Hello World!
i'm a string

dir()函数:

你可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表.

dir(Mudola)[上例中的]

输出: ['HelloWorld', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 's']

其实,Python附带的标准库就是这样一组模块的例子.同c等的类库一样.

转载于:https://www.cnblogs.com/25-to-life/archive/2010/08/12/1798265.html

Python 学习手记 pt5 模块相关推荐

  1. Python学习笔记:第三方模块2

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  2. python学习总结----时间模块 and 虚拟环境(了解)

    python学习总结----时间模块 and 虚拟环境(了解) time- sleep:休眠指定的秒数(可以是小数) - time:获取时间戳# 获取时间戳(从1970-01-01 00:00:00到 ...

  3. Python学习笔记13_模块

    Python学习笔记13_模块 文章目录 Python学习笔记13_模块 1.导入模块和的方法及使用 2.分层的文件系统中常用的包结构 3.OS 模块 4.sys 模块 5.math 模块 6.ran ...

  4. Python学习笔记:模块

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. python学习,pip 模块-数据库(mysql)-excel操作-写日志-邮件-md5加密

    #模块 # 标准模块 # python自带的 # 第三方模块 # pymysql # 自己写的python文件 # 导入模块的实质 # import my_model # 把导入的模块运行了一遍 # ...

  6. Python学习 Day 025 -模块相关

    主要内容: 1. 模块 2. import 3. from xxx import xxx 1.模块    (1)模块的概述 模块就是一个包含了python定义和声明的文件, 文件名就是模块的名字加上. ...

  7. Python学习笔记011_模块_标准库_第三方库的安装

    容器 -> 数据的封装 函数 -> 语句的封装 类 -> 方法和属性的封装 模块 -> 模块就是程序 , 保存每个.py文件 # 创建了一个hello.py的文件,它的内容如下 ...

  8. Python学习笔记——glob模块【文件、路径操作】

    最近做了一个将dicom文件转化为mhd文件的任务,由于要进行批量转化所以遍历文件夹必不可少,刚开始学习python编程,所以把用过的模块用法记录下来,以加深记忆,方便查阅,最后参考前人的博客做了gl ...

  9. Python 学习笔记 -- pickle模块,如何腌制泡菜(入门级)

    #关于腌菜的基础操作 #一般情况下学会腌菜的技术可以使文件大小更加小巧,更加持久. #下来是就是一些腌菜的基础用法 import pickle, os #在腌菜之前需要导入腌菜模块#实例一:这是一个保 ...

最新文章

  1. Python 基础 二
  2. PyTorch报错No module named ‘transforms‘
  3. CALL注入--扫雷辅助(二)
  4. 数据结构:二叉查找树(C语言实现)
  5. Linux设备驱动:DMA 接口API
  6. c oracle更新参数化,Dapper的参数化更新和插入?
  7. java中service设计_JDBC中DAO+service设计思想
  8. HTML代码 笔记 部分
  9. 如何安装安信可一体化开发环境【转】
  10. 视易收银系统怎样连接服务器,视易收银系统操作方法
  11. 未来世界的幸存者-读书笔记
  12. 极路由2hc5761刷华硕固件_极路由3华硕固件下载-极路由3 Pro刷华硕固件官方完整版【附升级工具及教程】-东坡下载...
  13. 自从有了OJ水题嗅探神器,麻麻再也不担心我刷不到题了。。
  14. Golang环境及revel框架在Linux下的安装
  15. C#实现简单气泡屏保(一)
  16. SpringBoot之自定义starter
  17. Maven--setting详解
  18. 太全面了!Python 编程的最好搭档—VSCode 实用指南!
  19. 计算机网络安全期末考试华南理工,华南理工软件学院2015期末考试-计算机网络B卷.doc...
  20. 算法学习----红黑树

热门文章

  1. Java中httpClient中的设置超时时间
  2. Mr.J--代码雨( Matrix)
  3. idea多级目录不展开的问题
  4. 机器学习--01建立开发集与训练集
  5. JS中URL中的特殊字符问题:escape,encodeURI,encodeURIComponent(转)
  6. HDU 2328 Corporate Identity
  7. 冲突问题和核心对象和原生js 和 jquer的区别的两个区别(固定格式的区别和入口函数的区别)
  8. c++ 动态数组初始值不为0?
  9. EDM邮件营销之如何制作模板
  10. 在Ubuntu下用桌面图形界面挂载分区