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()
View Code

依据如上,我们可以总结出,它执行的顺序具体为:

先执行outur的函数

在执行内部函数的inner

下来执行到inner函数的返回值

再具体到inner的函数,执行inner函数里面的表达式

 

Python中,一切(变量,函数,类)皆对象

 

 函数的形式参数也可以是函数的对象

 

posted on 2021-11-24 19:27  钢镚芽儿哟  阅读(67)  评论(0编辑  收藏  举报

导航