zoukankan      html  css  js  c++  java
  • Python第十课学习

    Python第十课学习

    www.cnblogs.com/yuanchenqi/articles/5828233.html
    函数:
    1 减少代码的重复
    2 更易扩展,弹性更强;便于日后文件功能的修改
    3 保持代码的一致性

    #计算机中的函数; subroutine 子程序 ;procedures 过程

    定义:
    函数是指...

    函数的创建:
    def (define)函数的关键字

    #创建
    def f():
    print("OK")
    #调用
    f()

    # f() 调用 ;f 变量
    调用时,一定要加上()
    函数名的命名规则:
    1 字母数字下划线;不能是特殊字符
    2 区分大小写
    3 不能使用关键字

    默认参数一定要跟在其他参数后面

    关于不定长参数位置:

    *args 放在前面 ;**kwargs 放在右边;如果有默认参数,放左边

    优先级;
    def function(name,age=22,*args,**kwarga)

    函数作用域:
    4 大作用域


    4大参数: 必要参数 关键字参数 默认参数 不定长参数

    函数的名字既可以作为参数也可以作为返回值

    只有 模块 类 函数 才能引入新的作用域

    关于递归:
    1 内部自己调用自己
    2 需要存在一个结束条件
    注意: 但凡是递归可以写的程序,循环都可以做
    而且,通常递归的效率非常的


    内置函数:
    abs(n) 绝对值
    all(iterable) 当列表内的所有元素为真时,返回为True



    参考: www.cnblogs.com/yuanchenqi/aritcles/5830025.html

    装饰器
    复习:
    1 作用域: L E G B
    x=10
    def f():
    t=5
    a=3
    def inner():
    count=7
    print (a)
    return 1
    2 高阶函数:(满足两个条件:1 函数名可以作为参数输入;2 函数名还可作为返回值)


    3 闭包: 闭包=函数块+定义函数时的环境

    def outer():
    x=10
    def inner(): # inner是一个内部函数
    print(x) # 外部环境的一个引用
    return inner # 此时 inner是一个闭包

    outer()() # 等价于 f=outer() f()
    # 执行f=outer()时,outer()被执行完毕,此时将
    def inner():
    print(x)
    return inner
    赋给f,再执行f()时 ,会调用 inner()


    def outer(x):

    inner(): # inner是一个内部函数
    print(x) # 外部环境的一个引用
    return inner # 此时 inner是一个闭包

    f=outer(10)
    f()
    # 等价于 outer()()


    装饰器:

    def foo():
    print('foo...')

    foo()


    import time

    start = time.time() # 打印当前时间
    time.sleep(1) # 停留一秒
    end = time.time()

    print(start)
    print(end-start)


    开放,封闭原则

    def show_time():
    start = time.time()
    foo()
    end = time.time()
    print('spend %s' %(end-start))
    show_time()


    升级

    def show_time(f):
    start = time.time()

    f()

    end = time.time()
    print('spend %s' %(end-start))

    show_time(foo)

    再升级

    def show_time(f):
    def inner()
    start = time.time()

    f()

    end = time.time()
    print('spend %s' %(end-start))
    return inner

    @show_time # 等价于 foo=show_time(foo)
    foo() # 执行inner 函数


    ###>>>撰写程序时,需要去考虑会不会影响其他应用场景<<<###

    def logger(flag):
    def show_time(f):
    def inner(*x,**y)

    start = time.time()

    f(*x,**f)

    end = time.time()
    print('spend %s' %(end-start))
    if flag == 'true':
    print('日志记录')
    return inner
    return show_time

    @logger('true') @ 相当于做了 @show_time

    def add(*a,*bb)

  • 相关阅读:
    Rest_framework-3
    Nginx 之一:编译安装nginx 1.8.1 及配置
    vmware虚拟机克隆CentOS7 出现的网络问题解决办法
    OAuth认证
    5个节点hadoop安装(zookeeper)
    hadoop完整安装
    从vmware模板克隆linux的操作
    ssh 免密码设置失败原因总结
    hadoop-2.6.0.tar.gz的集群搭建(3节点)(不含zookeeper集群安装)
    linux静态IP设置
  • 原文地址:https://www.cnblogs.com/Skypeduty1225/p/8607381.html
Copyright © 2011-2022 走看看