python模块函数列表的关系_Python基础学习笔记(十一)函数、模块与包

参考资料:

1. 《Python基础教程》

▶ 函数

Python的参数都是引用传递。

函数语法如下:

deffunctionname( parameters ):"函数_文档字符串"function_suitereturn [expression]

实例:

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

printstrreturn

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

#!/usr/bin/python#-*- coding: UTF-8 -*-

#可写函数说明

def printinfo( arg1, *vartuple ):"打印任何传入的参数"

print "输出:"

printarg1for var invartuple:printvarreturn;#调用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

defAddMoney():globalMoney

Money= Money + 1

printMoney

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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值