Pyhton学习——Day10
################################################################################################################
#高阶函数的定义:
#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的更多相关文章
- day10 Pyhton学习
一.昨日内容回顾 函数: 定义:对功能或者动作的封装 def 函数名(形参): 函数体 函数名(实参) return: 返回,当程序运行到return的时候,终止函数的执行 一个函数一定拥有返回值 ...
- python开发学习-day10(select/poll/epoll回顾、redis、rabbitmq-pika)
s12-20160319-day10 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- Pyhton学习——Day26
#多态:多态指的是一类事物有多种形态# import abc# class Animal(metaclass = abc.ABCMeta):# 同一类事物:动物# @abc.abstractclass ...
- pyhton 学习
官方学习文档 https://docs.python.org/3/tutorial/
- 20190320_head first pyhton学习笔记之构建发布
1.把代码nester.py放入文件夹nester中,在文件夹中再新建一个setup.py文件,文件内容如下: from distutils.core import setup setup( name ...
- python学习Day10 函数的介绍(定义、组成、使用)
今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...
- Python学习 day10
一.默认参数的陷阱 先看如下例子: def func(li=[]): li.append(1) print(li) func() func() func(li=['abc']) func() 结果: ...
- Python学习-day10 进程
学习完线程,学习进程 进程和线程的语法有很多一样的地方,不过在操作系统中的差别确实很大. 模块是threading 和 multiprocessing 多进程multiprocessing multi ...
- 算法学习--Day10
今天开始了新一章的学习,前面的题目虽然做了几道,但是我觉得训练量仍然太小了.不过机试确实很多题目,并且难度也有所不同,所以要针对不同的题目进行专门的练习才好.题目类型有些多,等接下来我将搜索的题目写完 ...
随机推荐
- 【leecode】宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 S中的所有字符都是字母 ...
- 获取淘宝sessionkey 实时保存
<?php/* * To change this license header, choose License Headers in Project Properties. * To chang ...
- IOS - Ask for Application Badge permission ios8
UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUs ...
- Laravel的路由功能
只能在当前方法内加载视图和URL跳转!
- redis 零散知识
1.单线程 2.默认 16 个库.0~15 3.select :切换数据库 4.DBsize :查看当前数据库的数量 5.keys * :查看当前库的所有 key 6.keys k? :问号是占位符 ...
- JavaScript中的XMLDOM对象
测试: demo.xml中的内容: js文件内容: window.onload=function(){ //var v=returnXMLDOM(); //v.loadXML('<root> ...
- 基于redis的分布式锁实现方案--redisson
实例代码地址,请前往:https://gitee.com/GuoqingLee/distributed-seckill redis官方文档地址,请前往:http://www.redis.cn/topi ...
- ASP.Net Cookie总结
Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...
- WifiManager类具体解释
public class WifiManager extends Object java.lang.Object ↳ android.net.wifi.WifiManager 类概述 This ...
- android setCookie 免登录
CookieSyncManager.createInstance(getActivity()); CookieManager cookieManager = CookieManager.getInst ...