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