[Python]呼叫其他.py的function

假如現在正在寫的檔案是main.py,而你想要呼叫fun.py這裡面的function, 要怎麼做呢?

### 這是fun.py
def itsafunction():
	print "This is a function that I want to call."

有兩種情況,
1. 這兩個檔案在同一個folder底下
—main.py
—fun.py

### 這是 main.py
from fun import itsafunction

# 使用fun.py的itsafunction()
itsafunction()

2. 這兩個檔案在不同folder底下
想要呼叫的fun.py在function這個folder底下
—main.py
—function—fun.py

這時候main.py可以有兩種寫法

### 這是main1.py
from function import fun

# 使用fun.py的itsafunction()
fun.itsafunction()
### 這是main2.py
from function.fun import itsafunction

# 使用fun.py的itsafunction()
itsafunction()

但還有一件很重要的事,要在function這個folder裡加”__init__.py”這個檔案

### 這是__init___.py
# 什麼都不用寫,沒錯,就是一個空白的.py檔
# it's true, it's empty. But it's still important!

那如果今天fun.py在function的下一層folder呢?
—main.py
—function—another—fun.py
只要把main.py改成

### 這是main.py
from function.another import fun

# 使用fun.py的itsafunction()
fun.itsafunction()

#或者也可以這樣寫

from function.another.fun import itsafunction

# 使用fun.py的itsafunction()
itsafunction()

但最重要的是,
function和another這兩個folder裡面都要加上”__init__.py”這個檔案!