可以这样讲,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() # 这是可以的,因为整个模块被导入,所有的定义已经执行了
 posted on 2015-01-06 22:35  zmlctt  阅读(14557)  评论(0编辑  收藏  举报