python学习第02篇-20181030

今天主要学习了python的各种函数参数传递,函数回调与闭包,yield关键字的用法等,笔记与代码放在了一起,如下:

print("------函数------")
'''
参数结构:
1.传统参数传递
    无参数传递
    固定参数传递
2.默认参数传递
3.未知个数参数传递
4.带键参数传递
'''


def fun():
    print("无参数传递")


def fun2(x):
    # 固定参数传递
    print(x)


def fun3(x, y=100, z='hello'):
    # 默认参数传递
    print(x, y, z)


def fun4(name, *args):
    # 未知参数个数传递
    print(name)
    for arg in args:
        print(arg)


fun4('hello', '1', '2')


def fun5(**kwargs):
    # 带键参数传递
    print(type(kwargs))
    for x in kwargs:
        print(x, kwargs[x])


fun5(x=1, y=2, z=3)

'''
回调函数又叫函数回调:
将函数作为参数传递到另外的函数中执行。
'''


def fun6(func, args):
    # 函数回调
    func(args)


def f1(x):
    print(x)


fun6(f1, '这是函数回调')

'''
闭包:
函数回调是将函数作为参数传递,闭包是将函数作为返回值返回
'''


def say(word):
    # 闭包
    def name(name):
        print(word, name)

    return name


hi = say('你好')
hi('小明')

print("---------yield----------")
'''
yield 关键字的作用就是把一个函数变成一个generator(生成器)
带有yield的函数不再是一个普通函数,python解析器会将其视为一个generator
若将下面的yield i 改为print(i)将得不到迭代(Iterable)的效果
'''


def fun7(n):
    i = 0
    while i < n:
        yield i
        i += 1


for i in fun7(10):
    print(i)

猜你喜欢

转载自blog.csdn.net/qq_27466827/article/details/83547333