源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Python程序设计入门(4)模块和包

  • 时间:2022-03-14 08:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Python程序设计入门(4)模块和包
Python语言功能非常强大,除了类之外,还有模块和包的概念,这有点像perl,此处简单说说包和模块。 一、Python中的模块 模块——其实就是我们说的库(lib)的概念,不过它不仅只是可以包含一系列函数,也可以包含类,python里是没有像C语言之类,直接include某文件的,包正是这种类似的东西。 Python 引入模块的方法有两种: 1、[b]import 模块名(实际是对应的就是 文件名.py )[/b] 2、[b]模块名 = __import__("模块文件名(不带扩展名)")[/b] 也可以" import 模块名  as  别名 "这样用 例如:
[u]复制代码[/u] 代码如下:
test.py # -*- coding: gb18030 -*- #引入模块 import test_mod #调用模块里的函数 test_mod.my_func() #调用模块里的类 tc = test_mod.test_cls() tc.test_func() test_mod.py源码如下: # -*- coding: gb18030 -*- def my_func():     print 'I am a function in the module! ' class test_cls:     def test_func(self):         print 'I am a mothod in the class! '
调用模块里的函数或类一定要用 “模块名.类名|函数名” 的方式。 正是因为这种特性,python里很多 os.xx 、 sys.xx 之类的语法,但它不一定是对象(对象和非对象之间显得极混乱,或者可以认为模块也是一个对象吧,只是比较特殊),这是python语言的一个严重的缺点,不过当你习惯这些的时候,就比较容易读懂python的脚本了。 [b]sys 和 os 是 python 里最常用的模块[/b],需要了解一下它们。 二、Python中的包 包实际上就是对一系列模块的封装,以防止模块名之间发生冲突,对于一个标准的python程序,通常的结构为:
[u]复制代码[/u] 代码如下:
app.py     appname         __init__.py         son_pack1             __init__.py             son_mod_1_1.py             son_mod_1_2.py          son_pack2             __init__.py             son_mod_2_1.py             son_mod_2_2.py         son_mod_1.py         .......
如果学过Java就会明显,这是一种按目录来查找文件的方法,不过不同之处是每个目录必须带 __init__.py 否则将不会被识别为包的子目录。 在有__version__、__all__、__path__ 三个特殊变量,可以指定,也可以让这文件为空。 调用包里的类或函数的方法是: 包名.子包名.类名|函数名  这实际上就相当于C++或C#里的名字空间。 在调用包时,需要注册目录和具体模块的调用方法 如,要调用 son_mod_1_1.py 那么就是:
[u]复制代码[/u] 代码如下:
appname.son_pack1.son_mod_1_1
此外还有一种方法是用  form 关键字,方法为:
[u]复制代码[/u] 代码如下:
from appname.son_pack1 import son_mod_1_1
如果要喜引入 appname.son_pack1 里的所有模块,那么为:
[u]复制代码[/u] 代码如下:
from appname.son_pack1 import *
对于使用 import * 的情况,必须在 __init__.py 中用 __all__ 指明,如:
[u]复制代码[/u] 代码如下:
__all__ = ["son_mod_1_1", "son_mod_1_2"]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部