码迷,mamicode.com
首页 > 编程语言 > 详细

[python基础]关于包,类,模块的那些事儿

时间:2015-12-09 15:14:54      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

转载请注明出处:http://www.cnblogs.com/codefish/p/5032753.html

 

在理解python的包,类,模块之前,我一直是将他类比为dll,C#的类,命名空间的这种参照,这其实和C#还是存在差异的,我们先从宏观上来看这些单位.

技术分享

 

一,类

   关于类的定义出现在各个语言之中,在OOP中几乎是最小的封装单元了,方便更高的复用

 

二,模块

技术分享

  我们知道,在C#如果新建一个文件夹folder ,然后在该文件夹下添加任何类文件默认都是这样的命名方式

  folder.类名

  这样将一个folder下的所有类封装在一个命名空间之下,方便复用,这里的模块也是类似的功能,以单个文件做为一个模块,如图,在其它的地主引用的时候就以Humans为模块名加以引用

技术分享

  总结看来,每一个以.py结尾的文件都是模块(moudle)

 

三,包

   在命名空间的更上层,就是DLL程序集了,将这些类文更封装一层,而python用文件夹包含有__init__.py来将文件夹特殊化成package 

技术分享

 

  这里的包就是对模块的聚集,包裹在同一个文件夹内。

 

四,其它

   有些同学在引用的时候会注意到两种不同的语法

 

__author__ = Bruce
from Color.Red import DarkRed
import Humans

if __name__ == __main__:
    dark_red = DarkRed()
    dark_red.printinfo()
    pass

 

如果你细分点看就会看到: from Color.Red ,一般from 后面都是直接跟着包含上级空间的,而且import 只能跟着一级空间.

 

转载请注明出处:http://www.cnblogs.com/codefish/p/5032753.html

[python基础]关于包,类,模块的那些事儿

标签:

原文地址:http://www.cnblogs.com/codefish/p/5032753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!