参考资料:

  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。

Python基础学习笔记(十一)函数、模块与包的更多相关文章

  1. python基础学习笔记——初识函数

    什么是函数 我们目前为止,已经可以完成一些软件的基本功能了,那么我们来完成这样一个功能:约x 1 2 3 4 5 pint("拿出手机") print("打开陌陌&quo ...

  2. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  3. Python基础学习笔记(九)常用数据类型转换函数

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-variable-types.html 3. http://www ...

  4. Python基础学习笔记(八)常用字典内置函数和方法

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-dictionary.html 3. http://www.lia ...

  5. Python基础学习笔记(七)常用元组内置函数

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-tuples.html 3. http://www.liaoxue ...

  6. Python基础学习笔记(六)常用列表操作函数和方法

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-lists.html 3. http://www.liaoxuef ...

  7. Python 基础学习笔记(超详细版)

    1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...

  8. python 基础学习笔记(1)

    声明:  本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...

  9. Python基础学习笔记(十)日期Calendar和时间Timer

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-date-time.html 3. http://www.liao ...

随机推荐

  1. DIV设置了固定宽高出现文字(文本)的不能自动换行

    如果你的div设置了固定的width和height,有时会出现文字不能自动换行的情况 查过相关资料后才知道,只有英文文本才会出现不能自动换行的情况,(中文不存在)而原因是因为英文文本之间没有加空格,浏 ...

  2. SQL SERVER 2008 中三种分页方法与总结

    建立表: CREATE TABLE [TestTable] ( , ) NOT NULL , ) COLLATE Chinese_PRC_CI_AS NULL , ) COLLATE Chinese_ ...

  3. 执行maven-build.cmd失败

    执行maven-build.cmd失败,显示:"Non-resolvable parent POM: Could not transfer artifact ......",如截图 ...

  4. python项目练习3:万能的XML

    1.目的 如何用XML来表示多种数据,以及如何使用适合XML或SAX的简单API来处理XML文本.目标是通过一个描述各种网页和目录的XML文件生成一个完整的网站. 注:有关XML的描述参见http:/ ...

  5. Code(组合数学)

    Code Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8766 Accepted: 4168 Description Tran ...

  6. Linq中疏漏的几个知识点

    1.Union - 连接不同集合,自动过滤相同项 2.Concat - 连接不同集合,不会自动过滤相同项 3.Select - 类似List的ConvertAll,转换集合成员 4.Enumerabl ...

  7. 【计算机网络】当输入URL后发生了什么

    我们使用一个非常简单的模型,并假设它是最简单的HTTP请求,不使用代理并且使用的是IPv4 1. 浏览器首先判断使用的是什么协议(ftp/http),然后对URL进行安全检查.最后浏览器查看缓存,如果 ...

  8. linux内核中创建线程方法

    1.头文件 #include <linux/sched.h> //wake_up_process() #include <linux/kthread.h> //kthread_ ...

  9. Apache common pool2 对象池

    对象池的容器:包含一个指定数量的对象.从池中取出一个对象时,它就不存在池中,直到它被放回.在池中的对象有生命周期:创建,验证,销毁,对象池有助于更好地管理可用资源,防止JVM内部大量临时小对象,频繁触 ...

  10. Activity和Service的生命周期(图)

    1.Activity的生命周期 情形一.一个单独的Activity的正常的生命过程是这样的:onCreate->onStart->onPause->onStop->onDest ...