可以这样讲,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()
# 这是可以的,因为整个模块被导入,所有的定义已经执行了