Python模塊導入之import和__init__.py

1、import和from…improt

1.1、
  • import :導入一個模塊,(相當於導入的是一個文件夾,是個相對路徑);
  • from…import:導入了一個模塊中的一個函數(相當於導入的是一個文件夾中的文件,是個絕對路徑)。
1.2、使用方法與差異

example模塊:
example.py:

   def print_func( val ):
      print "Hello : ", val
      return
  • 1)import引入一個模塊後,使用時需要包括模塊名,有些類似C++裏實例化後調用函數。使用 import 引入並調用 example模塊的正確方法:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
#導入模塊
import example

#現在可以調用模塊裏包含的函數了
example.print_func(" World ")#使用模塊時,需包括模塊名

2)使用 from … import 模塊的正確方法:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 導入模塊
from example import print_func
 
# 現在可以調用模塊裏包含的函數了
print_func("World")#不需要包括模塊名

PS:一般來說,不建議使用from ... import *,這樣會導致命名空間混亂,同時使得代碼可閱讀性下降。使用from ... import能夠比較清晰看到引用了模塊的什麼方法。

1.3、幾種導入方式

#主要包括以下幾種導入方式:

1、import moduels(模塊名字) #導入整個模塊,這種導入方式比較佔用內存
2、import moduels (模塊名字) as XX
#這裏是導入整個模塊的同時給它取一個別名,因爲有些模塊名字比較長,用一個縮寫的別名代替在下次用到它時就比較方便

3、from modules(模塊名字) import func(方法)
#從一個模塊裏導入方法,你要用到模塊裏的什麼方法就從那個模塊裏導入那個方法,這樣佔用的內存就比較少
也可以用別名表示 :from modules(模塊名字) import func(方法)as XX
4、from package.modules import func(方法)
#從一個包的模塊裏導入方法 這個方法跟上面那種基本一樣,佔用的內存也比較少
也可以用別名表示,from modules(模塊名字) import func(方法)as XX

2、__init__.py#TODO

假設工程目錄如下圖,且每一個文件夾下都有一個__init__.py文件。
在這裏插入圖片描述
a.py文件的內容爲:

print("This is alpha!")

在文件夾mypackage同級創建test.py並輸入:

from mypackage.alpha import a

則輸出爲:

This is alpha!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章