python-函数和模块

函数的定义

1、函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
2、任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
3、函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
4、函数内容以冒号起始,并且缩进。
5、Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。

def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]
def printme( str ):
   "打印传入的字符串到标准显示设备上"
   print str
   return

函数的调用

定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。

传递参数

所有参数(自变量)在Python里都是按引用传递。如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。

匿名函数

用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。
1、Lambda函数能接收任何数量的参数但只能返回一个表达式的值,同时不能包含命令或多个表达式。
2、匿名函数不能直接调用print,因为lambda需要一个表达式。
3、lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数。
4、虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
lambda函数的语法格式如下:

lambda [arg1 [,arg2,.....argn]]:expression
sum = lambda arg1, arg2: arg1 + arg2;
 
#调用sum函数
print "Value of total : ", sum( 10, 20 )

return语句
return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。

函数的类型是由返回值决定的。

import语句

简单地说,模块就是一个保存了Python代码的文件。模块能定义函数,类和变量。模块里也能包含可执行的代码。
下例是个简单的模块support.py。

def print_func( par ):
   print "Hello : ", par
   return

想使用Python源文件,只需在另一个源文件里执行import语句,语法如下:

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

如下例子:

# 导入模块
import support
# 现在可以调用模块里包含的函数了
support.print_func("Zara")

from…import

Python的from语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下:

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

例如,要导入模块fib的fibonacci函数,使用如下语句:

from fib import fibonacci

from…import*

把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

from modname import *

这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。

reload函数
当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。因此,如果你想重新执行模块里顶层部分的代码,可以用reload()函数。该函数会重新导入之前导入过的模块。语法如下:

reload(module_name)

在这里,module_name要直接放模块的名字,而不是一个字符串形式。比如想重载hello模块,如下:

reload(hello)
原文地址:https://www.cnblogs.com/lely/p/10174631.html