Python函数
关于函数 关键词def
函数当中登录login():以及用法
函数中查看*args以及**kwargs
‘’‘
动态参数能解决什么?
1、当一个借口请求参数有时候是2个,有时候是3个,有时候是N个,如果按照正常的思维,我们需要编写N个函数
那么有了动态参数的话,我们只需要编写一个函数就可以了
‘’‘
’‘’
返回值
1、当一个函数的里面,有return,那么函数的返回值就是return后面的值
2、当一个函数的里面,没有return,那么函数的返回值是None
3、一个函数可以有多个返回值
函数返回值的价值:
如果在单个函数角度而言,函数其实有没有返回值无所谓
但是函数与函数之间需要建立一层关系,那么就可以通过
函数的返回值把这层关联关系建立起来。
备注:函数的形式函数也可以是函数
‘’‘
'''
全局变量:指的是定义的变量它的作用域(范围)是这个Python文件,
局部变量:在函数内部定义的变量,叫局部变量,那么它的作用域(范围)仅仅是函数而已
备注:当全局变量与局部变量的变量名称一致的时候:
1、在函数内部,局部变量的优先级是高于全局变量的
2、在Python文件而言,全局变量的优先级是高于局部变量的
’‘’
‘’‘
在函数内部引用全局变量
如果想在函数内部调用全部变量,我们就使用关键字global声明全局变量
'''
关于内部函数
lambda:匿名函数
书写格式 变量=lambda x,y:x*y
filter:过滤
常规的方式
运用filter的书写方式
书写格式为print(list(filter(func,lists))) 备注:其中func可进行lambda 关键词转化 如下图所示
需求为a>3 则转化成lambda a:a>3
map():对所有的对象做同样的操作
常规的方式
运用map():的解决方式 书写格式为print(list(map(func,lists)))
eval():字符串转为表达式
range():包含开始不包含结尾的范围
ord():字母转为数字
chr():把数字转为字母
关于随机数以及数字转化字母的实战实战
关于函数整体使用的实战
要求做出来一个注册登录以及其他的模拟登录
1、注册后数据本地保存
2、登录成功与否都要进行提示
3、输入其他选项是进行终止输出
输出结果为
装饰器
首先我们要知道以往的函数代码存在那些问题,只有理解了我们才能理解装饰器的逻辑以及解决的问题
1.从前代码的问题是什么?
登录一直修改,导致其他模块一直修改,我只想查看订单和后台数据,但是不想修改是否登录成功的逻辑
,但是还需要查看系统本身的业务。
解释器能解决的问题:装饰器需要解决的是把判断登录成功单独的分离出来,就需要在一个地方维护
1、把判断登录成功的代码分离出来,只需要在一个地方进行维护。
2、同时针对其他需要登录的模块,在这些模块里面不编写判断登录成功的逻辑,让这些模块也可以在登录成功的情况下进行业务操作
关于解释器的解读:
1、被装饰的函数其实在装饰器里面是装饰器函数的形式函数,可以说func=order func=admin
2、被装饰的函数真正执行的时候,其实本质上执行的是装饰器的函数,因为被装饰的函数这个时候其实已经是装饰器函数的内层函数
3、一旦结合装饰器后,调用被装饰的函数其实执行的是inner函数的内部函数,原来的被装饰的函数被覆盖;
4、一旦这个函数被装饰器装饰之后,被装饰的函数重新赋值成装饰器的内层函数
1 dict1={'isLogin':False} 2 3 def outer(func): #func=order func=admin 4 def inner(): 5 if dict1['isLogin']: 6 return func() #order() admin() 7 else: 8 print('请登录系统') 9 return inner 10 11 def login(): 12 username=input('请输入你的账户:\n') 13 password=input('请输入你的密码:\n') 14 if username=='jiachao' and password=='123456': 15 dict1['isLogin']=True 16 print('登陆成功') 17 else: 18 return False 19 20 @outer 21 def order(): 22 '''查看订单的明细 order的英文意思是订单''' 23 print('您已授权查看公司所有的订单明细') 24 @outer 25 def admin(): 26 '''查看后台的数据''' 27 print('您已授权查看核心系统') 28 29 def main(): 30 while True: 31 f=int(input('1.登录 2.订单明细 3.核心数据 4.退出\n')) 32 if f==1: 33 login() 34 elif f==2: 35 order() 36 elif f==3: 37 admin() 38 elif f==4: 39 break 40 main()
依据如上,我们可以总结出,它执行的顺序具体为:
先执行outur的函数
在执行内部函数的inner
下来执行到inner函数的返回值
再具体到inner的函数,执行inner函数里面的表达式
Python中,一切(变量,函数,类)皆对象
函数的形式参数也可以是函数的对象