模块是一个保存了的python代码_python-16:模块 包

Python 模块

模块定义

随着程序越来越庞大,需要分隔成几个文件;也需要能在不同文件中复用函数、类和变量,而不是拷贝代码。为了满足这些需要,Python提供了模块。

简单来说,模块就是一个保存了Python代码的文件(.py 文件)。文件名就是 模块名 (modulename)加上  .py 后缀。

模块能定义函数,类和变量。模块里也能包含可执行的代码。模块的模块名(作为一个字符串)可以由全局变量 __name __ 得到。

函数名,模块名都可看着变量名。

导入模块

1、import modulename1 [, modulename2[,... modulenameN]  可通过 import 语句导入一个或多个模块,模块导入命令通常放在脚本顶端。

2、frompackegename import modulename1[, name2[, ... nameN]]  从模块中导入一个或多个指定的部分到当前命名空间中

3、from packegename import *导入模块中的所有定义(除了以下划线_命名的),这种声明不该被过多地使用。

注:import modulename,实质:1、执行modulename.py文件(实质,将此文件代码全部导入);2、引入变量名(modulename,模块名就是变量名),故有,modulename.function()

注:pagegename,实质是一个文件夹,但包含了一个__init__.py文件,

注:执行文件和引用文件,一般bin.py是一个程序入口文件,bin.py中的import modulename,modulename.py就是一个引用文件

定位模块

当你导入一个模块,Python解析器对模块位置的搜索顺序是: 通过 import sys  sys.path查看,

1. 当前目录,(指的是执行文件的当前目录,即执行的那个文件的目录)

2. 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录

3. 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/

模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

运行本质

#2 from test import add

无论1还是2,首先通过sys.path找到test.py,然后执行test脚本(全部执行),区别是1会将test这个变量名加载到名字空间,而2只会将add这个变量名加载进来。

import只能导入模块,不能导入模块中的对象(类、函数、变量等)。如一个模块A(A.py)中有个函数getName,另一个模块不能通过import A.getName将getName导入到本模块,只能用import A。如果想只导入特定的类、函数、变量则用from A import getName即可。

调用包实质就是执行包下的__init__.py文件,包之间的引用,用点操作,如:from web.web1.web2 import test

if __name__=='__main__':有两层意思:1、在模块中用,是为了模块的测试;2、在主程序(bin.py)中用,是为了防止被其它用户调用自己的主程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值