可以這樣講,def定義了一個模塊的變量,或者說是類的變量。它本身是一個函數對象。屬於對象的函數,就是對象的屬性。當然,你也可以叫它“方法”。
python 的函數和其他語言的函數有很大區別。它是可以被其他變量覆蓋的,如:
def func():
print 1
print func() # 1
func = 5
print func # 5
pring func() # 錯誤!函數對象已經被覆蓋了
|
在同一模塊里,函數在未被定義前是不能使用的,因為它是在“運行時”定義的:
print func() # 錯誤!函數未定義
def func():
prnt 1
|
但如果定義函數的模塊被其他模塊包含,就不一樣了
# mod1
def
func1():
func2()
def
func2():
print
1
# mod2
import
mod1
mod1.func1()
# 這是可以的,因為整個模塊被導入,所有的定義已經執行了