python学习-4可复用函数与模块
Posted 快乐菠菜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习-4可复用函数与模块相关的知识,希望对你有一定的参考价值。
1、自定义函数
自定义函数格式如下:
def <函数名> (参数列表): <函数语句> return <返回值>
#!/usr/bin/python # 定义函数,打印数字1~5 def printNum5(): # range函数,生成列表集合,有3个入参:start(可选,起始数),stop(终止数,生成的数不包含loveme),step for i in range(1,5+1): print(i); printNum5();
带参数的函数:
#!/usr/bin/python # 定义函数,打印列表数据 def printNum(x): for i in x: print(i); printNum([‘ls‘,‘pwd‘,6,9,‘cd‘]);
有默认参数的函数:
#!/usr/bin/python # 求x的y次方,默认x为2,y为5 def cube(x=2,y=5): return x**y; print(cube()); # x、y都使用默认值 print(cube(3)); # x 设置为 3,y 使用 默认值 print(cube(3,2)); # x、y都不使用默认值 print(cube(y=3)); # x 使用 默认值,y 设置为 3 print(cube(y=2,x=8)); # 打乱传参次序
传递任意个参数:
#!/usr/bin/python # 传递任意个参数:如果参数名前加上一个星号“*”,则表示参数是一个可变长参数 def addNum(*nums): result = 0; for i in nums: result += i; return result; print(addNum()); # 0 print(addNum(1,3)); # 4 print(addNum(8,8,6)); # 22
2、变量作用域
#!/usr/bin/python def fun(x): a = [1]; a.append(x); print(a); a = [3,4,5]; fun(2); # a并没有变化 print(a);
#!/usr/bin/python def fun(x): global a; # 设置a为全局变量 a = [1]; a.append(x); print(a); a = [3,4,5]; # 全局变量 fun(2); # a发生变化 print(a);
3、使用lambda 声明函数
使用lambda可以声明一个匿名函数,lambda声明的是一个简单的函数。
lambda 函数中不能使用 print() 函数
#!/usr/bin/python # lambda函数 的好处就是简洁 fun = lambda x : x*x+1 # 声明一个lambda函数 print(fun(3)); print(fun);
4、可重用结构:python模块
python中的模块,实际上就是包含函数或者类的python脚本。
对于一个大型脚本,常常需要把功能细化到各个模块。
导入模块写法:
import 模块名
import 模块名 as 新名字
from 模块名 import 函数名
使用 “ from 模块名 import 函数名 ” 写法与 “ import 模块名 ”, 调用函数的区别是,前者可直接使用函数名调用函数,后者需要 “模块名.函数名” 调用函数。
#!/usr/bin/python import math print(math.sqrt(16)); from math import sqrt print(sqrt(81));
重新载入模块:
#!/usr/bin/python import os import imp a = imp.reload(os) # 重新载入模块 print(a);
编写一个模块:
包括两个文件,一个是模块文件,一个是调用文件。
# 文件 myPart.py def show(): print("This is show"); name = "myPart-name";
#!/usr/bin/python # 文件 test.py import myPart myPart.show(); print(myPart.name);
python 中的模块在哪里查找:
编写好的模块,如果不和调用文件在同一个目录,那么要怎么查找呢,或者要怎么放置自己的模块呢?
#!/usr/bin/python import sys print(sys.path) # 查看模块检索路径有哪些
如果新加了一个模块放在当前路径下的module目录,如何添加路径呢?
#!/usr/bin/python import sys import os sys.path.append(os.getcwd()+‘\module‘); # 添加一个目录,其中os.getcwd() 方法用于返回当前工作目录 print(sys.path);
import myPart myPart.show();
对于模块脚本,python会在运行后将其编译成 .pyc 字节码文件;对于非模块的脚本,python不会再运行文件之后将其编译成字节码形式。
如何查看模块提供的函数名:
#!/usr/bin/python import sys import os sys.path.append(os.getcwd()+‘\module‘); # os.getcwd() 方法用于返回当前工作目录 import myPart print(dir(os)) # 使用dir 函数查看模块提供的函数名 print(dir(myPart))
对于上面的每次运行都要加sys.path,其实是很不方便的,但是有解决办法,就是使用包。包其实就是一个相对于当前目录的路径而已
#!/usr/bin/python import module.myPart print(dir(module.myPart)) module.myPart.show()
简洁一点:
#!/usr/bin/python import module.myPart as myPart print(dir(myPart)) myPart.show()
以上是关于python学习-4可复用函数与模块的主要内容,如果未能解决你的问题,请参考以下文章