模块(Modules)

一、引入模块



模块:当编写更大的应用程序时,所有的代码肯定会分成多个文件,这样便于维护,另外已经编写好的函数和对象在被多个程序中使用时,不用把函数和对象拷贝到每个程序中。

模块支持以上功能,在Python中,一个.py文件就构成一个模块,通过模块,你可以调用其它文件中的程序。

模块名称:fibo.py

路径:E:\djcode\untitled

1 __author__ = ‘Administrator‘
2 def laugh():
3     print ‘HaHaHaHa‘

引入模块:

1 >>> import fibo     #引入了fibo模块
2 >>> fibo.Laugh()
3 HaHaHaHa
4 >>> fibo.__name__
5 ‘fibo‘
6
7 >>> from fibo import laugh   #引入了fibo模块,此种引入方式fibo未定义
8 >>> Laugh()
9 HaHaHaHa

二、搜索路径



Python会在以下路径中搜索它想要寻找的模块:

程序所在的文件夹

标准库的安装路径

操作系统环境变量PYTHONPATH所包含的路径

如果你有自定义的模块,或者下载的模块,可以根据情况放在相应的路径,以便Python可以找到。

三、dir()函数



内置函数dir()用来找出模块中定义了哪些名字,它返回一个排好序的字符串列表:

1 >>> import fibo
2 >>> dir(fibo)
3 [‘__author__‘, ‘__builtins__‘, ‘__doc__‘, ‘__file__‘, ‘__name__‘, ‘__package__‘, ‘Laugh‘,]

注意它列出了所有类型的名称: 变量、 模块、 函数等。

四、包(Packages)



包:可以将功能相似的模块放在同一个文件夹中,构成一个模块包。该文件夹中必须包含一个__init__.py的文件,提醒Python,该文件夹为一个模块包,__init__.py可以是一个空文件。

目录结构:

Untitled(E:\djcode\untitled)

Directory1

D1fibo.py

Package1

__init__.py

PK1fibo.py

PK2fibo.py

PK3fibo.py

PK4fibo.py

PK5fibo.py

fibo.py

在E:\djcode\untitled目录下引入fibo.py模块

1 >>> import fibo         #导入Python解释器的是fibo这个模块名称,若访问fibo模块中的函数需通过模块名称来访问
2 >>> fibo.laugh()
3 HaHaHaHa
4
5 >>> from fibo import laugh     #导入Python解释器的是fibo这个模块内所有的函数和对象,但不会导入fibo这个模块名称,因此fibo将未定义
6 >>> laugh()
7 HaHaHaHa

在E:\djcode\untitled目录下引入包(Package1)下的PK1fibo.py等模块:

 1 >>> import Package1.PK1fibo
 2 >>> Package1.PK1fibo.laugh()
 3 PK1fiboHaHaHaHaHaHa
 4
 5 >>> from Package1 import PK1fibo,PK2fibo,PK3fibo,PK4fibo,PK5fibo
 6 >>> PK1fibo.laugh()
 7 PK1fiboHaHaHaHaHaHa
 8
 9 >>> from Package1 import *       #当包(Package1)下的__init__.py文件为空时,                                     该导入模块等同于from Package1 import PK1fibo,PK2fibo,PK3fibo,PK4fibo,PK5fibo,                                     但当前__init__.py文件中包含有__all__ = ["PK1fibo","PK4fibo","PK5fibo"],                                     此时等同于from Package1 import PK1fibo, PK4fibo,PK5fibo
10 >>> PK1fibo.laugh()
11 PK1fiboHaHaHaHaHaHa
12 >>> PK2fibo.laugh()
13 Traceback (most recent call last):
14   File "<input>", line 1, in <module>
15 NameError: name ‘PK2fibo‘ is not defined

在E:\djcode\untitled目录下引入目录(Directory1)下的D1fibo.py模块:

1 >>> import sys
2 >>> sys.path.append("Directory1")
3 >>> from D1fibo import laugh
4 >>> laugh()
5 D1fiboHaHaHaHaHaHa

在E:\djcode\untitled\ Directory1目录下引入fibo.py模块:

1 >>> import sys
2 >>> sys.path.append("..")
3 >>> from fibo import laugh
4 >>> laugh()
5 HaHaHaHa

五、总结


from module import function

import module

__init__.py

时间: 2024-08-23 02:44:43

模块(Modules)的相关文章

haskell模块(modules)

装载模块 Haskell 中的模块是含有一组相关的函数,类型和类型类的组合.而 Haskell 进程的本质便是从主模块中引用其它模块并调用其中的函数来执行操作.这样可以把代码分成多块,只要一个模块足够的独立,它里面的函数便可以被不同的进程反复重用.这就让不同的代码各司其职,提高了代码的健壮性. Haskell 的标准库就是一组模块,每个模块都含有一组功能相近或相关的函数和类型.有处理 List 的模块,有处理并发的模块,也有处理复数的模块,等等.目前为止我们谈及的所有函数,类型以及类型类都是 P

webpack学习之——模块(Modules)

在模块化编程中,开发者将程序分解成离散功能块(discrete chunks of functionality),并称之为模块. 每个模块具有比完整程序更小的接触面,使得校验.调试.测试轻而易举. 精心编写的模块提供了可靠的抽象和封装界限,使得应用程序中每个模块都具有条理清楚的设计和明确的目的. 什么是 webpack 模块 对比 Node.js 模块,webpack 模块能够以各种方式表达它们的依赖关系,几个例子如下: ES2015 import 语句: CommonJSrequire() 语

Lua 标准库- 模块(Modules)

Lua包库为lua提供简易的加载及创建模块的方法,由require.module方法及package表组成 1.module (name [, ···]) 功能:建立一个模块. module的处理流程: module(name, cb1, cb2, ...) a. 如果package.loaded[name]是一个table,那么就把这个table作为一个module b. 如果全局变量name是一个table,就把这个全局变量作为一个module c. 当以前两种情况都不存表name时,将新建

PyQt5 模块modules

The QtCore module contains the core non-GUI functionality. This module is used for working with time, files and directories, various data types, streams, URLs, mime types, threads or processes. QtCore 模块包含了非GUI的功能设计.这个模块被用来实现时间,文件和目录,不同数据类型,流,URL,mim

LAMP详解之lamp(modules)安装

大纲: 1.  LAMP概念 2.  LAMP的原理 3.  LAMP的实现 一.LAMP的概念  LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库(mariadb),Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,LAMP具有通用.跨平台.高性能.低价格的优势,因此LAMP无论是性能.质量还是价格都是

简单实例讲解linux的module模块编译步骤(转)

注:原博文讲述较为详尽细致,故转到本地--aaronGao ------------------------------------------------------------------------------------------------------------------------------------------- 本文将直接了当的带你进入linux的模块编译.当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者能够看懂.之所以要写这篇文章,主要是因为从书本上学的话,

Android React Native使用原生模块

有时候我们的App需要访问平台API,并且React Native可能还没有相应的模块包装:或者你需要复用一些Java代码,而不是用Javascript重新实现一遍:又或者你需要实现某些高性能的.多线程的代码,譬如图片处理.数据库.或者各种高级扩展等等. 而用React Native可以在它的基础上编写真正原生的代码,并且可以访问平台所有的能力.如果React Native还不支持某个你需要的原生特性,你应当可以自己实现该特性的封装. 不过在开始编写代码使用原生模块前,有一个知识点需要掌握,免得

Python——标准库 Sys模块

------------------------------------------------------------------------------------------------------ sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. 处理命令行参数 在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称. ---------------------------------------------------

webpack-Modules(模块)

模块(Modules) 在模块化编程中,开发者将程序分解成离散功能块(discrete chunks of functionality),并称之为模块. 每个模块具有比完整程序更小的接触面,使得校验.调试.测试轻而易举. 精心编写的模块提供了可靠的抽象和封装界限,使得应用程序中每个模块都具有条理清楚的设计和明确的目的. Node.js 从最一开始就支持模块化编程. 然而,在 web,模块化的支持正缓慢到来. 在 web 存在多种支持 JavaScript 模块化的工具,这些工具各有优势和限制.

python的sys模块

转自:https://blog.csdn.net/zyc_love_study/article/details/78983817 python版本: Python 2.7.6 1: sys是python自带模块. 利用 import 语句输入sys 模块. 当执行import sys后, python在 sys.path 变量中所列目录中寻找 sys 模块文件.然后运行这个模块的主块中的语句进行初始化,然后就可以使用模块了 . 2: sys模块常见函数 可以通过dir()方法查看模块中可用的方法