我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python 学习笔记 (4)—— 模块

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python 学习笔记 (4)—— 模块

       模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。


       模块可以从其他程序 输入 以便利用它的功能。这也是我们使用Python标准库的方法。首先,我们将学习如何使用标准库模块。

使用sys模块

#!/usr/bin/python
# Filename: using_sys.py
import sys
print 'The command line arguments are:'
for i in sys.argv:
    print i

执行结果

$ python using_sys.py we are arguments
The command line arguments are:
using_sys.py
we
are
arguments


工作原理

       首先,我们利用import语句 输入 sys模块。基本上,这句语句告诉Python,我们想要使用这个模块。sys模块包含了与Python解释器和它的环境有关的函数。


       当Python执行import sys语句的时候,它在sys.path变量中所列目录中寻找sys.py模块。如果找到了这个文件,这个模块的主块中的语句将被运行,然后这个模块将能够被你 使用 。注意,初始化过程仅在我们 第一次 输入模块的时候进行。


       sys模块中的argv变量通过使用点号指明——sys.argv——这种方法的一个优势是这个名称不会与任何在你的程序中使用的argv变量冲突。另外,它也清晰地表明了这个名称是sys模块的一部分。


   这里,当我们执行python using_sys.py we are arguments的时候,我们使用python命令运行using_sys.py模块,后面跟着的内容被作为参数传递给程序。Python为我们把它存储在sys.argv变量中。


    记住,脚本的名称总是sys.argv列表的第一个参数。所以,在这里,'using_sys.py'是sys.argv[0]、'we'是sys.argv[1]、'are'是sys.argv[2]以及'arguments'是sys.argv[3]。注意,Python从0开始计数,而非从1开始。


     sys.path包含输入模块的目录名列表。我们可以观察到sys.path的第一个字符串是空的——这个空的字符串表示当前目录也是sys.path的一部分,这与PYTHONPATH环境变量是相同的。这意味着你可以直接输入位于当前目录的模块。否则,你得把你的模块放在sys.path所列的目录之一。


模块的__name__

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


例子2:

#!/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 using_name.py
This program is being run by itself
                                                                                                                         
$ python
>>> import using_name
I am being imported from another module
>>>


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


如何创建你自己的模块

       创建你自己的模块是十分简单的,你一直在这样做!每个Python程序也是一个模块。你已经确保它具有.py扩展名了。下面这个例子将会使它更加清晰。

例子3

#!/usr/bin/python
# Filename: mymodule.py
def sayhi():
    print 'Hi, this is mymodule speaking.'
version = '0.1'
                                                                                                           
# End of mymodule.py
上面是一个 模块 的例子。你已经看到,它与我们普通的Python程序相比并没有什么特别之处。我们接下来将看看如何在我们别的Python程序中使用这个模块。

记住这个模块应该被放置在我们输入它的程序的同一个目录中,或者在sys.path所列目录之一。
#!/usr/bin/python
# Filename: mymodule_demo.py
                                                                                                       
import mymodule
                                                                                                       
mymodule.sayhi()
print 'Version', mymodule.version

执行结果

$ python mymodule_demo.py
Hi, this is mymodule speaking.
Version 0.1


它如何工作


   注意我们使用了相同的点号来使用模块的成员。Python很好地重用了相同的记号来,使我们这些Python程序员不需要不断地学习新的方法。


from..import

下面是一个使用from..import语法的版本。

#!/usr/bin/python
# Filename: mymodule_demo2.py
                                                                                   
from mymodule import sayhi, version
# Alternative:
# from mymodule import *
                                                                                   
sayhi()
print 'Version', version


模块与包

1.模块可以通过以下3种方式引用

(1)import

(2)import ... as ...

(3)from ... import ...


例如:

[root@node1 python]# python say.py
Hello World
                                                                             
[root@node1 python]# cat say.py
#!/usr/bin/python
def say():
    print 'Hello World'
say()
                                                                             
[root@node1 python]# cat saysomething.py
import say
[root@node1 python]# python saysomething.py
Hello World


(1)

[root@node1 python]# cat saysomething.py
import say
say.say()
[root@node1 python]# python saysomething.py
Hello World


(2)

[root@node1 python]# cat saysomething.py
import say as s
s.say()
[root@node1 python]# python saysomething.py
Hello World


(3)

[root@node1 python]# cat saysomething.py
from say import say
say()
[root@node1 python]# python saysomething.py
Hello World


2.包

包的结构,需要目录里面存在__init__.py 文件即可

[root@node1 python]# mkdir add
[root@node1 python]# vim add/operator.py
#!/usr/bin/python
def f(x,y):
    return x+y
                                                  
[root@node1 python]# touch add/__init__.py
[root@node1 python]# vim  test.py
#!/usr/bin/python
import add.operator
print add.operator.f(1,2)
                                                  
[root@node1 python]# python test.py
3


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python 学习笔记 (4)—— 模块

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 学习笔记 (4)—— 模块

模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。        模块可以从其他程序 输入 以便利用它的功能。这也是我们使用Python标准库的方法。首先,我们将学习如何使用标
2023-01-31

python学习笔记(九)、模块

1 模块  使用import 语句从外部导入模块信息,python提供了很大内置模块。当你导入模块时,你会发现其所在目录中,除源代码文件外,还新建了一个名为__pycache__的子目录(在较旧的Python版本中,是扩展名为.pyc 的文
2023-01-31

python zipfile模块学习笔记

ZIP文件格式是一种常见的存档和压缩标准,这个zipfile模块提供了工具来创建、读取、写入、附加和列出一个ZIP文件。使用ZIP64扩展(即压缩文件大小超过4G),它能解压加密的ZIP文件,解密过程很慢。1、测试是否为ZIP文件is_zi
2023-01-31

python os模块学习笔记

import os os.mkdir(name) #创建目录 os.path.exists(name) #判断文件或者目录是否存在 os.path.isdir(name) #判断指定对象是否为目录。是True,否则Fa
2023-01-31

Python学习笔记5—Python模块

python模块分为系统内置的模块、第三方的模块和用户编写的模块    默认情况下,python第三方的模块安装在python 的安装目录下site-packages下,以文件或者目录的形式存放    用户模块,程序模块化对区分功能和结构,
2023-01-31

Python学习笔记之json模块和pickle模块

json和pickle模块是将数据进行序列化处理,并进行网络传输或存入硬盘,下面这篇文章主要给大家介绍了关于Python学习笔记之json模块和pickle模块的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-05-18

Python学习笔记7——文本、模块

参考书籍:《Learning_Python_5th_Edition.pdf》,一本英文书呢,我上传到百度网盘吧,请点击这里,密码是:kym3文本文件的输入输出Python具有基本的文本文件读写功能。Python的标准库提供有更丰富的读写功能
2023-01-30

Python学习笔记:json模块和pi

Python中的json模块和pickle都是用于数据的序列化和反序列化,它们提供的方法也是一样的:dumps,dump,loads,loaddumps(obj):将对象序列化为str。dump(obj, fp):将对象序列化为str,并存
2023-01-30

Python学习笔记4——函数

函数1 # 函数需要先定义,关键字 def2 def func():3 print("我是一个函数")4 5 # 函数的调用6 func()执行结果:我是一个函数内建函数(内置函数)help(), print(), format()
2023-01-30

Python3学习笔记(urllib模块

1.基本方法urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)-    
2023-01-31

Nodejs学习笔记之Stream模块

一,开篇分析 流是一个抽象接口,被 Node 中的很多对象所实现。比如对一个 HTTP 服务器的请求是一个流,stdout 也是一个流。流是可读,可写或兼具两者的。 最早接触Stream是从早期的unix开始的, 数十年的实践证明Strea
2022-06-04

Nodejs学习笔记之NET模块

一,开篇分析 从今天开始,我们来深入具体的模块学习,这篇文章是这个系列文章的第三篇,前两篇主要是以理论为主,相信大家在前两篇的学习中, 对NodeJS也有一个基本的认识,没事!!!趁热打铁,让我们继续将NodeJS进行到底,好了废话不多说,
2022-06-04

NodeJS学习笔记之Http模块

一,开篇分析 首先“Http”这个概念大家应该比较熟悉了,它不是基于特定语言的,是一个通用的应用层协议,不同语言有不同的实现细节,但是万变不离其宗,思想是相同的, NodeJS作为一个宿主运行环境,以JavaScript为宿主语言,它也有自
2022-06-04

NodeJS学习笔记之MongoDB模块

一,开篇分析 这篇属于扩展知识篇,因为在下面的文章中会用到数据库操作,所以今天就来说说它(Mongodb模块)。 (1),简介MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方
2022-06-04

Python中shutil模块的学习笔记教程

介绍 shutil 名字来源于 shell utilities,有学习或了解过Linux的人应该都对 shell 不陌生,可以借此来记忆模块的名称。该模块拥有许多文件(夹)操作的功能,包括复制、移动、重命名、删除等等 一、chutil.co
2022-06-04

周末学习笔记——day03(模块,包)

一,复习'''装饰器@wraper # fn = wraper(fn)def fn(): passdef wrap(arg): def outer(func): # 可以用arg def inner(*a
2023-01-31

NodeJS学习笔记之FS文件模块

一,开篇分析 文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集。可以通过调用 require("fs") 来获取该模块。文件系统模块中的所有方法均有异步和同步版本。 (1),文件系统模块中的异步方法需要一个完成时的回调
2022-06-04

Node.js中的模块机制学习笔记

Javascript自诞生以来,曾经没有人拿它当做一门编程语言。在Web 1.0时代,这种脚本语言主要被用来做表单验证和网页特效。直到Web 2.0时代,前端工程师利用它大大提升了网页上的用户体验,JS才被广泛重视起来。在JS逐渐流行的过程
2022-06-04

NodeJS学习笔记之(Url,QueryString,Path)模块

一,开篇分析 这篇文章把这三个模块拿来一起说,原因是它们各自的篇幅都不是很长,其次是它们之间存在着依赖关系,所以依次介绍并且实例分析。废话不多说了,请看下面文档: (1),"Url模块"来个小栗子:  var url = require('
2022-06-04

Python学习笔记:单例模式

单例模式:一个类无论实例化多少次,返回的都是同一个实例,例如:a1=A(), a2=A(), a3=A(),a1、a2和a3其实都是同一个对象,即print(a1 is a2)和print(a2 is a3)都会打印True。实现方式:有两
2023-01-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录