参考资料:

  1. 《Python基础教程》

  2. http://www.runoob.com/python/python-functions.html

  3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000

  4. http://www.runoob.com/python/python-modules.html

  5. http://www.pythoner.com/

  6. http://blog.csdn.net/leexide/article/details/39908279

  7. 包机制

  ▶ 函数

  Python的参数都是引用传递。

  函数语法如下:  

def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]

  实例:

def printme( str ):
"打印传入的字符串到标准显示设备上"
print str
return

  Python支持缺省参数和不定长参数,缺省参数的定义与使用同其它编程语言。不定长参数的使用实例如下: 

#!/usr/bin/python
# -*- coding: UTF-8 -*- # 可写函数说明
def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print "输出: "
print arg1
for var in vartuple:
print var
return; # 调用printinfo 函数
printinfo( 10 );
printinfo( 70, 60, 50 );

  Python使用Lambda表达式来创建匿名参数:

  Lambda语法:

lambda [arg1 [,arg2,.....argn]]:expression

  实例:

sum = lambda x, y = 5: x + y
sum(3)

  ▶ 模块

  模块是一个保存了Python代码的(如:.py)文件,也是Python对象,具有随机的名字属性用来绑定或引用。其中,可定义函数、类和变量,以及可执行代码。

  import语句语法:

import module1[, module2[,... moduleN]

  from...import语句语法:

from modname import name1[, name2[, ... nameN]]
from modname import *

  全局变量的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*- Money = 2000
def AddMoney():
global Money
Money = Money + 1 print Money
AddMoney()
print Money

  dir(module_name)函数,返回一个module中定义的所有模块,变量和函数组成的一个列表。

  globals()和locals()函数,分别返回全局或局部命令空间的名字。

  reload(module_name)函数,重新导入一个模块。

  

  ▶ 包

  为了避免将文件夹名当作普通的字符串,包是一个至少要包含__init__.py文件的文件夹。

  __init__.py的内容可为空,一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,全部导出定义过的模块。 

__all__ = ['module_1', 'module_2']

   图1 包、模块、函数和类的关系

          图2 实例组织结构

parent文件夹中的__init__.py

#!/usr/bin/env python
# -*- coding=utf-8 -*- if __name__ == '__main__':
print 'Run as main in parent...'
else:
print __name__
print 'pack 1 or pack 2 init...'

pack_1文件夹中的__init__.py:

#!/usr/bin/env python
# -*- coding=utf-8 -*- __all__ = ["module_1"] if __name__ == '__main__':
print 'Run as main in pack 1...'
else:
print __name__
print 'pack 1 init...'

pack_2文件夹中的__init__.py:

#!/usr/bin/env python
# -*- coding=utf-8 -*- __all__ = ["module_2"] if __name__ == '__main__':
print 'Run as main in pack 2...'
else:
print __name__
print 'pack 2 init...'

使用实例:

#!/usr/bin/env python
# -*- coding=utf-8 -*- from parent.pack_1 import *
from parent.pack_2 import * module_1.func1()
module_2.func2()

  结果:

parent
pack 1 or pack 2 init...
parent.pack_1
pack 1 init...
parent.pack_2
pack 2 init...
pack_1.module_1.func1()
pack_2.module_2.func2()

  

  如果直接运行__init__.py,则__name__是main。

最新文章

  1. RESTful 接口调试分享利器 restc
  2. Oracle(DML)
  3. jQuery从无知到无所不知
  4. Spark之SQL解析(源码阅读十)
  5. 工具介绍 - NimbleText
  6. Upgrade custom workflow in SharePoint
  7. 【贪心】最大乘积-贪心-高精度-java
  8. Elasticsearch--数据索引
  9. 6/6 Sprint2 看板和燃尽图
  10. 8月10日 微软MVP巡讲 Windows 开发专题活动
  11. 如何由Height Map生成Normal Map
  12. ubuntu server 14.10 安装 nodejs
  13. HttpWebRequest和HttpWebResponse用法小结
  14. HDU 3157 Crazy Circuits(有源汇上下界最小流)
  15. Ubuntu下配置smb服务器
  16. Java内存分配和GC
  17. Gym Class(拓扑排序)
  18. 行业介绍:车载DVD MID 导航用料一般包含国腾LVDS芯片GM8284C/GM8283
  19. AngularJS1.X学习笔记11-服务
  20. 玩转Spring Cloud之服务注册发现(eureka)及负载均衡消费(ribbon、feign)

热门文章

  1. python两个 list 交集,并集,差集的方法+两个tuple比较操作+两个set的交集,并集,差集操作+两个dict的比较操作
  2. Linux/Unix中的#!和!#
  3. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.5.Accordion控件
  4. ORACLE添加表约束的语法示例
  5. Hibernate,get()和load()区别
  6. PyChram使用技巧总结
  7. [ios][swift]Swift类型之间转换
  8. css 前景色与背景色
  9. Winform中如何实现子窗体刷新父窗体
  10. sql截断日志