轉載請注明出處: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