Day 12 开放封闭原则,装饰器初识】的更多相关文章

nonlocal关键字 # 作用:将 L 与 E(E中的名字需要提前定义) 的名字统一​# 应用场景:如果想在被嵌套的函数中修改外部函数变量(名字)的值​# 案例:​def outer():    num = 10    print(num)  # 10    def inner():        nonlocal num        num = 20        p77rint(num)  # 20    inner()    print(num)  # 20​​ 开放封闭原则:不改变调…
一.nonlocal关键词 # global # num = # def fn(): # global num # L>G 将局部的名字与全局统一 # num = # fn() # print(num) # 结果为 1.作用:将local和enclosing(e中的名字需要提前定义)中的名字统一 2.应用场景:如果想在被嵌套的函数中修改外部函数变量(名字)的值 3.案例 def outer(): num = print(num) # 结果为 def inner(): # 如果想在被嵌套的函数中修…
1. 介绍闭包 闭包:如果在一个内部函数里,对在外部作用域的变量(不是全局作用域)进行引用,那边内部函数被称为闭包(closure) 例如:如果在一个内部函数里:func2()就是内部函数, 对在外部作用域的变量进行引用:n就是被引用的遍历,n在外部作用域func里面被定义,而不是全局作用域 def func(): n = 10 def func2(): print('func2', n) return func2 f = func() f() 2. 介绍装饰器 装饰器:本质上是一个闭包函数.…
一.nonlocal关键字 1.作用:将L与E(E中的名字需要提前定义)的名字统一 2.应用场景:如果想在被嵌套的函数中修改外部函数变量(名字)的值 def outer(): num=10 print(num) # 输出结果为10 def inner(): nonlocal num num=20 print(num) #输出级结果为20 inner() print(num) # 输出结果为20 def outer(): num= # 必要写 是用于L与E的名字统一 def inner(): #…
装饰器和"开放-封闭"原则 "开放-封闭"原则 软件开发中的"开放-封闭"原则,它规定已经实现的功能代码不应该被修改,但可以被扩展,即: 封闭:已实现的功能代码块不应该被修改 开放:对现有功能的扩展开放 需求: 编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件) 要求登录成功一次,后续的函数都无需再输入用户名和密码 文件: test10.txt False,alex,abc123 程序: import time def save_b…
1.开放封闭原则 原则: 开放封闭原则,对扩展是开放的,对修改是封闭的. 封版概念:当写好一个功能以后,就不可以再修改此函数,避免下面一系列的调用产生错误. 因此产生了装饰器 2.装饰器形成过程 我们来模拟一个发明汽车的过程.首先封装了一个汽车,汽车可以跑起来就是已经封装好的功能函数 按照开放封闭思想,此函数不能再修改,且调用是 car()直接调用 def car(): print('小汽车跑起来') car() 社会进步了,某天人们不满足现状,想计算一下汽车跑一段路程的时间,然后想增加了计时功…
装饰器: 即是用一个函数去拓展另一个函数,同时遵循开放封闭原则 开放封闭原则 对修改关闭,对拓展开放 不允许修改源代码以及调用方式 以下是无参函数的基本格式 def outer(func): def wrapper(*args,**kwargs): # 新功能 res=func(*args,**kwargs) return res return wrapper 无参函数的语法糖是 @装饰器函数名称 必须写在被装饰函数的正上方 而且装饰器的定义,必须在被装饰函数的上方 也可以使用多个装饰器函数给同…
一.装饰器的形成过程 1.函数无参数,无返回值 import time def f1(): # 无参数,无返回值 time.sleep(1) print("Hello, World!") def timer(f): # f 是函数名 def inner(): # 闭包 start = time.time() f() end = time.time() total = end - start print(total) return inner f1 = timer(f1) # 调用tim…
一.函数名应用 函数名是什么?函数名是函数的名字,本质:变量,特殊的变量. 函数名(),执行此函数. python 规范写法 1. #后面加一个空格,再写内容,就没有波浪线了. 2.一行代码写完,下面一行的的内容要空2行, 3.逗号2个边的内容要有空格. 如果是不规范的写法,Pycharm编辑器,会有灰色的波浪线显示. 1.单独打印函数名 def func1(): print(666) print(func1) 执行输出: <function func1 at 0x000001455800A95…
原文:https://blog.csdn.net/tjiyu/article/details/57079927 面向对象设计原则(二):开放-封闭原则(OCP) 开放-封闭原则(Open-closed principle,OCP)也称开闭原则,是面向对象设计(OOD)中比较重要.常见的一种,下面来总结开放-封闭原则的知识点,包括: 1.什么是开放-封闭原则? 2.为什么需要遵守开放-封闭原则? 3.怎么做到开放-封闭原则? 4.开放-封闭原则需要注意什么? 1.什么是开放-封闭原则(OCP)1-…