python-- 函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-- 函数相关的知识,希望对你有一定的参考价值。
函数
一、函数的定义与调用
函数的定义:函数及工具,我们把事先准备工具的过程可以当做定义一个函数,拿来用准备好的工具叫做函数的调用
结论:函数必须是先定义后调用的。
1、定义一个函数
def func(): print(‘hello word‘) func()
注; def 为关键字,func为函数名,后跟的括号与冒号必须写,def与func之间用空格分开
func():调用函数体中的值------称为函数的调用
函数名;由数字、字母,下划线组成。不能以数字开头。不能是python的关键字
-------- 写函数应有注释说明
写一个函数;关键字+函数名--------子代码-----优先写注释-------再写函数体
2、函数的分类
内置函数:无须定义,python解释器都弄好了
如
print(len(‘hfgsgj00‘)) #求长度 print(max([1,2,3,4])) #最大值 print(min([54,778,65,7865])) #最小值 print(sum([12,4864,5])) #求和
自定义函数:
def mylen():
pass
3、返回值
返回值:return(返回)后的那个数就叫返回值
return与函数而言有三种形式的返回
1,没有返回值------就是不写return的情况下,函数默认返回None,只写return后没有返回值函数也默认返回None
2,只返回一个值--------后跟一个返回值,可以跟任意类型的值
3,返回多个值-------return后可以跟多个任意类型的返回值,返回的值是以元组类型
注;如果在函数中有多个return,当函数执行时只执行第一个return,执行完第一个return函数结束执行
二、参数
1,形参:形式参数,在函数定义时接受的值
参数种类与定义;
1、默认参数:设置默认值
2、位置参数:按位置顺序一一对应传参
3、动态参数:*arges接受一个或多个参数,组成员组, **kwargs接受多个关键字参数,并组成字典类型
2,实参:真实存在的值,在函数调用时传入的值
1,按位置传参:按照位置一一对应传入参数
def func(x,y): print(x) print(y) func(10,20)
2、按关键字传参:就是以变量的形式和赋值的形式传参
def func(x,y): print(x) print(y) func(y=10,x=20)
三,空间命名和作用域
1、三种空间命名(命名空间加载由硬盘到内存)
1,局部空间命名:程序运行中,调用时才加载
2、全局空间命名:程序运行中,从上到下加载
3、内置空间命名:运行程序前加载
2、空间命名的取值(从内往外取值)
1,局部调用时: 局部空间-------全局空间---------内置空间
2,全局调用时:全局空间-------内置空间
3、作用域:命名空间和作用域是分不开的,因为作用域的划才得到的命名空间
1,全局作作用域:全局生效,包含内置名称空间和全局名称空间,在文件的任何位置都能别应用
2,局部作用域:局部空间名称,只能在局部范围之内才能生效
四,函数名本质
函数名本质就是函数的内存地址
1,可以被应用
2、可以当做函数的参数和返回值
3,可以被当做容器类型的元素
五,闭包
闭包函数:内部函数包含对外部作用域而非全局作用域名字的引用,该内部函数被称为闭包函数-------函数内部定义的函数称为内部函数
六 ,装饰器
1,装饰器的形成过程
语法糖、带参数的装饰器、hold的住所有函数、带返回值的装饰器
定义:装饰器就是一个闭包函数
功能:在不修改原函数及其调用方式的情况下对函数的功能进行扩展
2,装饰器的开放封闭原则
对扩展是开放的,对修改是封闭的
3、装饰器的主要功能和装饰器的固定结构
装饰器的主要功能:在不改变调用方式的基础上在函数前后加功能
装饰器的固定结构
def time(func): def inner(*args,**kwargs): #函数执行之前要做的 ret=func(*args,**kwargs) #函数执行之后要做的 return ret return inner
4,带参数的装饰器
def outer(flag): def timer(func): def inner(*args,**kwargs): if flag: print(‘‘‘执行函数之前要做的‘‘‘) re = func(*args,**kwargs) if flag: print(‘‘‘执行函数之后要做的‘‘‘) return re return inner return timer @outer(False) def func(): print(111) func()
5、多个装饰器装饰一个函数
def wrapper1(func): def inner(): print(‘wrapper1 ,before func‘) func() print(‘wrapper1 ,after func‘) return inner def wrapper2(func): def inner(): print(‘wrapper2 ,before func‘) func() print(‘wrapper2 ,after func‘) return inner @wrapper2 @wrapper1 def f(): print(‘in f‘) f()
以上是关于python-- 函数的主要内容,如果未能解决你的问题,请参考以下文章