1. ################################################################################################################
    #高阶函数的定义:
    #1.函数接收的参数是一个函数名
    #2.函数的返回值是一个函数名
    #3.满足上述条件的任意一个都可以称为高阶函数
    ## import time
    # def foo():
    # time.sleep(3)
    # print('你好啊林师傅')
    #
    # def test(func):
    # # print(func)
    # start_time=time.time()
    # func()
    # stop_time = time.time()
    # print('函数运行时间是 %s' % (stop_time-start_time))
    # # foo()
    # test(foo)
    ###############################################################################################################
    # def foo():
    # print('from the foo')
    # def test(func):
    # return func
  2.  
  3. # res=test(foo)
    # # print(res)
    # res()
  4.  
  5. # foo=test(foo)
    # # # print(res)
    # foo()
    # import time
    # def foo():
    # time.sleep(3)
    # print('来自foo')
    #不修改foo源代码
    #不修改foo调用方式
    ##############################################################################################################
    #多运行了一次,不合格
    # def timer(func):
    # start_time=time.time()
    # func()
    # stop_time = time.time()
    # print('函数运行时间是 %s' % (stop_time-start_time))
    # return func
    # foo=timer(foo)
    # foo()
    #没有修改被修饰函数的源代码,也没有修改被修饰函数的调用方式,但是也没有为被修饰函数添加新功能
    # def timer(func):
    # start_time=time.time()
    # return func
    # stop_time = time.time()
    # print('函数运行时间是 %s' % (stop_time-start_time))
    #
    # foo=timer(foo)
    # foo()
    ##################################################################################################################
    #函数的嵌套:在函数内部重新定义新的函数称为函数的嵌套,在函数内部调用其他函数不是函数的嵌套
    # def bar():
    # print('from bar')
    # def foo():
    # print('from foo')
    # bar()
    # pass
    # print(foo())
    #######################
    # def father(name):
    # print('from father %s'%name)
    # def son():
    # print('from son')
    # def grandson():
    # print('from grandson')
    # grandson()
    # son()
    # father('pandaboy')
    # from father pandaboy
    # from son
    # from grandson
    #闭包:在当前函数内找到的自己包中的变量,找不到的变量去外部找,函数作用域的体现
    ###################################################################################################################
    #装饰器的实现:
    # 1.定义一个函数(参数为另一个函数)
    # 2.设定返回值,返回值为内部函数名称
    # 3.定义内部函数,设定内部函数的方法
    #####################################################################################################################
    #装饰器的框架:
    # def timer(func):
    # def wrapper():
    # # print(func)#嵌套的作用域
    # strat_time = time.time()
    # func()
    # stop_time = time.time()
    # print('运行时间是%s'%(stop_time-strat_time))
    # return wrapper
    ####################################################################################################################
    # import time
    # @timer#作用是对函数进行计时
    # def test():
    # time.sleep(3)
    # print('test函数运行完毕')
    # timer(test)#返回的是wrapper的地址
    # test = timer(test)
    # test()
    # test函数运行完毕
    # 运行时间是3.0108001232147217
    ########################################加上返回值#####################################################
    # def timer(func):
    # def wrapper():
    # # print(func)#嵌套的作用域
    # strat_time = time.time()
    # res = func()#赋值给func(),实际会赋值给test函数的一个返回值
    # stop_time = time.time()
    # print('运行时间是%s'%(stop_time-strat_time))
    # return res#设定返回值
    # return wrapper
    # import time
    # @timer#作用是对函数进行计时
    # def test():
    # time.sleep(3)
    # print('test函数运行完毕')
    # return 1
    # # timer(test)#返回的是wrapper的地址
    # # test = timer(test)
    # res1 = test()
    # print(res1)
    #########################################加上参数######################################################
    # def timer(func):
    # def wrapper(*args,**kwargs):#默认可以输入任何参数
    # # print(func)#嵌套的作用域
    # strat_time = time.time()
    # res = func(*args,**kwargs)#就是在运行test(),赋值给func(),实际会赋值给test函数的一个返回值
    # stop_time = time.time()
    # print('运行时间是%s'%(stop_time-strat_time))
    # return res#设定返回值
    # return wrapper
    # import time
    # @timer#test = timer(test)作用是对函数进行计时
    # def test(name,age):
    # time.sleep(3)
    # print('test函数运行完毕,【名字是】:%s,【年龄是】:%s'%(name,age))
    # return 1
    # # timer(test)#返回的是wrapper的地址
    # # test = timer(test)
    # res1 = test('alex','18')#就是在运行wrapper
    # print(res1)
    #################################################################################################################
    #解压序列 a,b,c = (1,2,3)数值是一一对应的关系
    #交换解压序列
    # a,b = (1,2)
    # a,b = b,a
    # print(a,b)
    # 2 1
    # user_dic = {'username':None,'login':False}
    #
    # def auth_func(func):
    # def wrapper(*args,**kwargs):
    # if user_dic['username'] and user_dic['login'] == True:
    # res = func(*args, **kwargs)
    # return res
    # username = input('用户名:').strip()
    # password = input('密码:').strip()
    # if username =='pandaboy' and password =='123456':
    # user_dic['username'] = username
    # user_dic['login'] = True
    # res = func(*args,**kwargs)
    # return res
    # else:
    # print('用户名或密码错误')
    # return wrapper
    # @auth_func
    # def index():
    # print('欢迎来到主页')
    # @auth_func
    # def home(name):
    # print('欢迎访问根目录%s'%name)
    # def shopping_car():
    # print('查询数据库里的内容')#需要访问列表中的数据库数据
    # def order():
    # print('查询订单内容')
    # #给所有的函数加上验证功能
    # index()
    # home('alex')
    ###################################根据列表内容查询用户名及密码(不写死)####################################################
    # user_list=[
    # {'name':'alex','passwd':'123'},
    # {'name':'linhaifeng','passwd':'123'},
    # {'name':'wupeiqi','passwd':'123'},
    # {'name':'yuanhao','passwd':'123'},
    # ]
    # current_dic = {'username':None,'login':False}
    # def auth_func(func):
    # def wrapper(*args,**kwargs):
    # if current_dic['username'] and current_dic['login'] == True:
    # res = func(*args, **kwargs)
    # return res
    # username = input('用户名:').strip()
    # password = input('密码:').strip()
    # for user_dic in user_list:
    # if username ==user_dic['name'] and password ==user_dic['passwd']:
    # current_dic['username']=username
    # current_dic['login']=True
    # res = func(*args, **kwargs)
    # return res
    # else:
    # print('用户名或密码错误')
    # return wrapper
    # @auth_func
    # def index():
    # print('欢迎来到主页')
    # @auth_func
    # def home(name):
    # print('欢迎访问根目录%s'%name)
    # def shopping_car():
    # print('查询数据库里的内容')#需要访问列表中的数据库数据
    # def order():
    # print('查询订单内容')
    # #给所有的函数加上验证功能
    # index()
    # home('alex')
    # # 用户名:alex
    # # 密码:123
    # # 欢迎来到主页
    # # 欢迎访问根目录alex
    ##################################################################################################################
    # 关系型数据库:Mysql Oracle
    #集中账号管理ldap

Pyhton学习——Day10的更多相关文章

  1. day10 Pyhton学习

    一.昨日内容回顾 函数: 定义:对功能或者动作的封装 def 函数名(形参): 函数体 函数名(实参) return:  返回,当程序运行到return的时候,终止函数的执行 一个函数一定拥有返回值 ...

  2. python开发学习-day10(select/poll/epoll回顾、redis、rabbitmq-pika)

    s12-20160319-day10 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  3. Pyhton学习——Day26

    #多态:多态指的是一类事物有多种形态# import abc# class Animal(metaclass = abc.ABCMeta):# 同一类事物:动物# @abc.abstractclass ...

  4. pyhton 学习

    官方学习文档 https://docs.python.org/3/tutorial/

  5. 20190320_head first pyhton学习笔记之构建发布

    1.把代码nester.py放入文件夹nester中,在文件夹中再新建一个setup.py文件,文件内容如下: from distutils.core import setup setup( name ...

  6. python学习Day10 函数的介绍(定义、组成、使用)

    今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...

  7. Python学习 day10

    一.默认参数的陷阱 先看如下例子: def func(li=[]): li.append(1) print(li) func() func() func(li=['abc']) func() 结果: ...

  8. Python学习-day10 进程

    学习完线程,学习进程 进程和线程的语法有很多一样的地方,不过在操作系统中的差别确实很大. 模块是threading 和 multiprocessing 多进程multiprocessing multi ...

  9. 算法学习--Day10

    今天开始了新一章的学习,前面的题目虽然做了几道,但是我觉得训练量仍然太小了.不过机试确实很多题目,并且难度也有所不同,所以要针对不同的题目进行专门的练习才好.题目类型有些多,等接下来我将搜索的题目写完 ...

随机推荐

  1. Java Spring 两大特色

    0 引言 本文主要描述的是Spring常用的两大特色功能:AOP和IoC容器 1 IoC Spring的IoC:就是常说的“控制反转”,也又叫依赖注入的(DI). 优点:IoC最大的好处就是把对象生成 ...

  2. Project Euler 43 Sub-string divisibility

    题意: 1406357289是一个0至9全数字数,因为它由0到9这十个数字排列而成:但除此之外,它还有一个有趣的性质:子串的可整除性.记d1是它的第一个数字,d2是第二个数字,依此类推,我们注意到: ...

  3. P1421 小玉买文具

    ... 题目描述 班主任给小玉一个任务,到文具店里买尽量多的签字笔.已知一只签字笔的价格是1元9角,而班主任给小玉的钱是a元b角,小玉想知道,她最多能买多少只签字笔呢. 输入输出格式 输入格式: 输入 ...

  4. freeswich 安装mod_av

    转载   https://www.cnblogs.com/zgen1/p/7867303.html 需要先编译libav库 编译libav下载:git clone https://freeswitch ...

  5. 01.Python基础-3.集合容器

    1 列表list 1.1 列表介绍 Python内置的一种数据类型是列表:list. 有序的集合,可随时添加和删除其中的元素. 每个元素都分配一个数字 --它的位置,或索引.0,1,2,3-- 可存放 ...

  6. 基于Linux ALSA音频驱动的wav文件解析及播放程序 2012

    本设计思路:先打开一个普通wav音频文件,从定义的文件头前面的44个字节中,取出文件头的定义消息,置于一个文件头的结构体中.然后打开alsa音频驱动,从文件头结构体取出采样精度,声道数,采样频率三个重 ...

  7. struct 模块解决 TCP黏包问题

    首先来看一下产生黏包现象的一段代码: # server.py 服务端 import socket ​ sk = socket.socket() sk.bind(('127.0.0.1',9000)) ...

  8. 简单易学的机器学习算法——神经网络之BP神经网络

    一.BP神经网络的概念     BP神经网络是一种多层的前馈神经网络,其基本的特点是:信号是前向传播的,而误差是反向传播的.详细来说.对于例如以下的仅仅含一个隐层的神经网络模型: watermark/ ...

  9. UVA 10196 Morning Walk(欧拉回路)

    Problem H Morning Walk Time Limit 3 Seconds Kamalis a Motashotaguy. He has got a new job in Chittago ...

  10. JavaScript 中对变量和函数声明提前的演示样例

    如题所看到的,看以下的演示样例(能够使用Chrome浏览器,然后F12/或者右键,审查元素.调出开发人员工具,进入控制台console输入)(使用技巧: 控制台输入时Shift+Enter能够中途代码 ...