################################################################################################################
#高阶函数的定义:
#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 # res=test(foo)
# # print(res)
# res() # 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. SQL数据查询

    CREATE TABLE class0328( id INT, cname ), sex ), age INT, birthday DATE, html DOUBLE, js DOUBLE, scor ...

  2. 如何添加删除子网卡eth0:1(linux案例)

    这种方法实现了单网卡多IP,我的系统是centos7的,如何添加删除子网卡IP详细请看下面操作例子 添加子网卡IP:ifconfig  ens3:1  192.168.0.100/24        ...

  3. MySQL数据库唯一性设置(unique index)

    1,命令行操作 分为两种.一种是在建表时就想好要加上唯一性,另一种是在后期才发现需要设置唯一性. 建表时: CREATE TABLE `t_user` ( `Id` int(11) NOT NULL ...

  4. 【AIM Tech Round 5 (rated, Div. 1 + Div. 2) 总结】【题解往前或往后翻,不在这】

    又是爆炸的一场 心态有点小崩.但问题不大.. 看A题,一直担心有多个正方形..小心翼翼地看完之后,毅然地交上去了. [00:08] A[Accpted] 然后开始看B题. 觉得和之前做的某题很像,但翻 ...

  5. 【hihocoder 1303】模线性方程组

    [题目链接]:http://hihocoder.com/problemset/problem/1303 [题意] [题解] /* x % m[1] = r[1] x % m[2] = r[2] x = ...

  6. 使用Spring Initializer快速创建Spring Boot项目

    目录结构 IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目:选择我们需要的模块:向导会联网创建Spring Boot项目:默认生成的Spring Boot项目: 主程序 ...

  7. zTree 无子节点 单击事件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 工具类Util类的注释书写规范

    package com.paic.pacz.core.salesmanage.util; import java.util.List; import org.apache.commons.beanut ...

  9. etymology-R

    1)vor = to eat devour vt. 狼吞虎咽地吃光: 吞没,毁灭: 目不转睛地看[de-向下+vour-吃] voracity  n.贪食,贪婪.拉丁词根vor-,vorac-表示吞食 ...

  10. 杭电1018-Big Number(大数)

    Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...