一.
1.模块是包含函数和其他语句的脚本文件,以".py"为后缀名,在Python中可以通过导入模块来使用模块中的函数或数据.
创建一个文件fun.py内容如下:
def f1():
print('hello world!')
def f2(L):
result = 0
for i in L:
result += i
return result
def f3(x):
print("old x = " + str(x))
x = 0
print("change to x = " + str(x))
value=100
再创建另一个文件shang.py,再在这个文件调用fun.py中的函数
#!/usr/bin/env python
import fun //引入模块
from fun import f1,f2,f3 //引入模块中的函数
fun.f1() //与下一个区别,用这个必须先用import引入模块
f1()
print f2([1,2,3,4,5])
f3(20)
print fun.value //打印引入模块的变量值
结果如下
hello world!
15
old x = 20
change to x = 0
注:引入fun.py过程中会自动生成fun.pyc文件并且上述两个文件在同一目录.
2.设置模块查找路径2.
上一例子是在同一目录
若不在同一目录,python查找不到,必须进行查找路径的设置,将模块所在的文件夹加入系统查找路径
查看默认查找路径:
import sys
sys.path
添加一个路径[将当前路径加入]
import os
import sys
sys.path.append(os.getcwd())
二.函数参数
1.函数中的参数传递:
>>> def sum(a=1,b=2,c=3):
... return a+b+c
...
>>> sum() //不传使用默认参数
6
>>> sum(4,5,6) //顺序传递参数
15
>>> sum(b=4,c=12,a=1) //按参数名传递
17
>>>
2.可变长的参数
>>> def listappend( *l ):
... result = []
... for i in l:
... result.extend(i)
... return result
...
>>> l = [1,2,3,4,5]
>>> j = [4,5,6]
>>> print (listappend(l,j))
[1, 2, 3, 4, 5, 4, 5, 6]
>>> k = [1,2,3]
>>> print (listappend(l,j,k))
[1, 2, 3, 4, 5, 4, 5, 6, 1, 2, 3]
3.补充:lambda表达
特殊的声明函数方式,用于创建新的函数对象,并且在运行时返回它们【返回函数对象】
声明一个匿名函数,简单的函数,返回一个值
用于定义小型的函数,在函数中仅包含单一的参数表达式,而不能包含其他语句,但是可以调用其他函数
格式:lambda 参数列表:表达式
>>> def repeater(n):
... return lambda s:s*n
...
>>> twice = repeater(2)
>>> print(twice('word'))
wordword
>>> print(twice(2))
4
>>> fun = lambda x:x*x -1
>>> print(fun(2))
3
>>> print(fun(3))
8