python 中 类, 模块, 包的组织
2015-12-03 22:04
399 查看
java 通过包来管理类,使得程序员可以非常清晰的管理代码。python 也有类似的思想,但两者还是有些差别的。
作为python的初学者, 自己简要说明下自己对python 中类(或函数), 模块, 包三者组织的理解(我用的是python2.6):
(额, 先说明下,直接运行模块 和 使用import 语句导入效果是不完全相同的,这里只说明import )
1. 模块就是程序, 任何python程序都可以作为模块被导入,比如path下有一文件hello.py:
在解释器键入import hello, 则会输出 “hello py”
2. 在模块中直接执行一段代码并不算很有用,模块真正的用处在于保持自己的作用域,说白一点就是 在其中定义 函数、 类、变量,这些定义构成了模块的attribute
比如在Fish.py 中:
定义了函数 fishing(), 和 类 GoldenFish,直接运行代码后,就就可以在环境中使用函数fishing()和 GoldenFish了
另一种方法就是 使用import:
1. import Fish: 之后使用fishing()函数时 需键入Fish.fishing()。 GoldenFish同样也是如此
2. from Fish import * :可以直接 键入 fishing()进行调用
3 包,为了组织好模块,可以将它们分组为包,说白了,包就是模块所在的目录, 为了让python把这个目录当做包来看待, 在这个目录下必须有一个__init__.py的文件(模块),当我们import 一个包的时候,这里面的代码就起作用了。
在__init__.py 中也可以定义一些函数,类。但重要的是要去import 其他模块,废话不说了,直接上代码(单词animal 拼错了)
目录结构:
D:/python/animol (包目录)
D:/pyhton/animol/__init__.py (包代码)
D:/pyhton/animol/Bird.py (Bird模块)
D:/pyhton/animol/Fish.py (Fish模块)
__init__.py:
Bird.py:
Fish.py:
在IDLE 或命令行中 直接import animol 可以把animol包中的模块导入到环境中,但需要通过animol.来进行使用,比如:
bb = animol.Bird.BeatifulBird()
如果想使用短名:使用 from animol import *
(另外, 在__init__.py中的变量__all__ 指定了当使用from animol import * 时,有哪些类,函数或变量是可以使用的)
作为python的初学者, 自己简要说明下自己对python 中类(或函数), 模块, 包三者组织的理解(我用的是python2.6):
(额, 先说明下,直接运行模块 和 使用import 语句导入效果是不完全相同的,这里只说明import )
1. 模块就是程序, 任何python程序都可以作为模块被导入,比如path下有一文件hello.py:
print 'hello py'
在解释器键入import hello, 则会输出 “hello py”
2. 在模块中直接执行一段代码并不算很有用,模块真正的用处在于保持自己的作用域,说白一点就是 在其中定义 函数、 类、变量,这些定义构成了模块的attribute
比如在Fish.py 中:
def fishing(): print 'Fishing' class GoldenFish: def __init__(self): weight = 0.13 def swim(self): print 'Swimming' def eat(self): print 'Eating'
定义了函数 fishing(), 和 类 GoldenFish,直接运行代码后,就就可以在环境中使用函数fishing()和 GoldenFish了
另一种方法就是 使用import:
1. import Fish: 之后使用fishing()函数时 需键入Fish.fishing()。 GoldenFish同样也是如此
2. from Fish import * :可以直接 键入 fishing()进行调用
3 包,为了组织好模块,可以将它们分组为包,说白了,包就是模块所在的目录, 为了让python把这个目录当做包来看待, 在这个目录下必须有一个__init__.py的文件(模块),当我们import 一个包的时候,这里面的代码就起作用了。
在__init__.py 中也可以定义一些函数,类。但重要的是要去import 其他模块,废话不说了,直接上代码(单词animal 拼错了)
目录结构:
D:/python/animol (包目录)
D:/pyhton/animol/__init__.py (包代码)
D:/pyhton/animol/Bird.py (Bird模块)
D:/pyhton/animol/Fish.py (Fish模块)
__init__.py:
# some animols from Fish import * from Bird import * #__all__ = ['GoldenFish'] class Cell: def living(self): print 'Still living'
Bird.py:
class BeatifulBird: def flying(self): print 'Flying'
Fish.py:
def fishing(): print 'Fishing' class GoldenFish: def __init__(self): weight = 0.13 def swim(self): print 'Swimming' def eat(self): print 'Eating'
在IDLE 或命令行中 直接import animol 可以把animol包中的模块导入到环境中,但需要通过animol.来进行使用,比如:
bb = animol.Bird.BeatifulBird()
如果想使用短名:使用 from animol import *
(另外, 在__init__.py中的变量__all__ 指定了当使用from animol import * 时,有哪些类,函数或变量是可以使用的)
相关文章推荐
- Android之使用Http协议实现文件上传功能
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- 菜鸟说给菜鸟听之Beginning Linux Programming——Chapter1(1)
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例