做項目的時候經常會要求做到模塊化管理,即同樣功能的代碼放到同一個文件夾下,以便於方便管理,相信很多人對模塊的引用都模糊不清,今天鄙人在這里就總結下。
一、模塊導入的使用
在同一個文件夾下有兩個文件分別是main.py和module_file.py
module_file.py文件的內容
#!/usr/bin/env python # -*- coding:utf-8 -*- name = 'Eric.yue' def running(): print 'I am is running' def watching(): print 'I am watching'
那么在main中調用module_file的方法有幾種:
1 #1、直接導入使用,導入的其實是模塊(或者說賦給module_file這個變量),所以訪問的時候要加模塊名 2 3 import module_file 4 5 #訪問其屬性 6 print module_file.name #Eric.yue 7 8 #訪問其方法 9 module.running() 10 module.watching() 11 12 #2、如果要直接調用 13 from module_file import * 14 #如果只想導入部分模塊 15 from module_file import name,watching 16 17 running() 18 watching() 19 20 #如果有方法和main中的方法有沖突那么需要這么做 21 from module_file import running as mod_running 22 23 mod_running()
二、導入包的使用
python中的包 本質上就一個文件夾,里面必須包含一個__init__.py的文件。其實就是用來從邏輯上組織代碼
創建一個包文件夾,package 里面包含一個__init_.py文件,在創建一個文件pack.py
#!/usr/bin/env python #-*-coding:utf-8-*- def pack_func(): print 'the first pack_func'
那么如果在main中調用package包的內容(導入包的本質就是執行該包下的__init__.py文件)
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 from package import pack 5 6 pack.pack_func()
如果該包在多級目錄下那么調用的時候,需要用點來做目錄連接
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 from package.package_second import second 5 6 second.func_second()