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

最新文章

  1. Atitit zxing二维码qr码识别解析
  2. Python学习之路【目录】
  3. selenium定位元素(本内容从https://my.oschina.net/flashsword/blog/147334处转载)
  4. Android自定义控件之轮播图控件
  5. thinkphp foreach循环生成二维数组的方法
  6. Spring中给Bean注入集合
  7. [JVM-4]Java内存模型(JMM)
  8. MFC如何在树形图边上添加动态小地图
  9. ActiveMq Windows 配置优化
  10. python 标准类库-数据类型之集合-容器数据类型
  11. 服务器日志文件Web远程查看
  12. MySQL 5.6新特性 -- crash-safe replication
  13. R中sort(), rank(), order()
  14. Linux pip安装使用详解
  15. BZOJ.2806.[CTSC2012]Cheat(广义后缀自动机 DP 单调队列)
  16. 通过ambari安装hadoop集群(二)
  17. ASP.NET 实现多页面合并一页显示
  18. 【Codewars】7×7 摩天大楼
  19. Web站点性能-微观手段
  20. [C#] 实现可设置超时的 Task

热门文章

  1. VS2008的默认打开重置为VS2008
  2. [转载]C#对象序列化与反序列化
  3. java中四种引用类型
  4. WPF MultiDataTrigger
  5. Flume的Avro Sink和Avro Source研究之一: Avro Source
  6. Injection Attacks-Log 注入
  7. Kerbose
  8. *****正则表达式匹配URL
  9. IDEA 运行maven命令时报错: -Dmaven.multiModuleProjectDirectory system propery is not set
  10. Eclipse不能自动编译 java文件的解决方案