我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

Python_第四天 殷朝龙 2021年1月21日

[复制链接]
缘定三石学员认证 发表于 2021-1-21 23:17:40 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
一.今天学习内容
时间段【1】   9:00-20:00

1、课堂笔记
'''生成器generator'''
# import time

# def nature():
#     n = 1
#     while True:
#         '''
#         return n 1.返回n的值 2.立即结束函数的执行
#         yield n  1.返回n的值 2.立即暂停函数的执行  

#         '''
#         #print(n)
#         yield n   
#         n += 1

# g = nature()
# for e in g:
#     print(e)
#     time.sleep(1)
'''
高阶函数

函数名本质上就是一个指向该函数的变量
'''

print(abs(-5))
print(abs)
f = abs
print(f(-5))
abs = 7
print(abs)
'''
函数作为参数传入
一个函数A可以接收另一个函数B作为参数,我们把这个函数A称为高阶函数
'''
def add(x,y,f):
    return f(x)+f(y)
print(add(3,4,f))
print(add(-3,-4,f))

def g(x):
    return x*x

print(add(3,4,g))

#map()函数  map映射/reduce()/filter()
r = map(g,[1,2,3,4,5])
print(list(r))

'''
函数作为返回值
'''

def s(*args):
    ss = 0
    for arg in args:
        ss += arg
    return ss

print(s(1,2,3,4,5))
print(s(1,3,5,7))
'''
lazy_s()函数中定义了内部函数s(),s()函数中有引用了外部函数
'''

def lazy_s(*args):
    #定义函数
    def s():
        ss = 0
        for arg in args:
                 ss += arg
        return ss
    return s

h = lazy_s(1,2,3,4)
print(h)
print(h())
'''
匿名函数
lambda 表达式
'''

def g(x):
    return x*x
r = map(g,[1,2,3,4,5])
print(list(r))

r = map(lambda x:x*x*x,[1,2,3,4,5])       #匿名函数缺函数名
print(list(r))

f = lambda x,y:x+y
print(f(2,3))

#将下面的函数用匿名函数重写
def is_odd(n):
    return n%2 == 1
print(is_odd(3))
print(is_odd(2))

a = lambda n:n%2==1
print(a(4))
#创建一个装饰器
def log(func):
    '''
    将要被装饰的函数
    '''
    def wrapper(*args,**kw):
        print('调用函数:%s'%func.__name__)
        return func(*args,**kw)
    return wrapper
import time

@log   # @:装饰器  now = log(now)
def now():
    print(time.strftime('%Y-%m-%d %H:%M:%S'))

now()
print('------------------------------------------')
f = log(now)
f()

print(now.__name__)
print(f.__name__)
now.__name__='现在'
print(f.__name__)  
def log2(text):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args,**kw):
            #wrapper.__name__=func.__name__
            print('%s:%s'%(text,func.__name__))
            return func(*args,**kw)
        return wrapper
    return decorator

@log2('执行函数')
def now2():
    #print('调用函数:%s'%now.__name__)
    print(time.strftime('%Y-%m-%d %H:%M:%S'))

now2()
print(now2.__name__)
时间段【2】 21:00-23:00
完成课后作业,对上课所讲的内容和周边同学讨论
一.今天遇到的问题
  高阶函数以及闭包的实现过程不太理解
二.问题解决方案
A. 怎样解决
       周边同学讨论,上网查资料


回复

使用道具 举报

关注0

粉丝0

帖子5

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注软件测试菁英教育

客服电话:17792550360

客服时间:9:00-21:00

卓目鸟学苑 - 专注软件测试菁英教育!( 陕ICP备20001493号-1 )

版权所有 © 西安菁英教育科技有限公司 2023-2026