python 装饰器 递归函数 记录
来源:互联网 发布:c#网络编程视频 编辑:程序博客网 时间:2024/04/29 12:13
- 第一步:简单实现装饰器
def login(func): print("in Login") return funcdef tv(name): print("{name} in TV".format(name = name))tv = login(tv)tv('Jack')# out:# in Login# Jack in TV
- 第二步:同上
效果相同,但是使用的是@login
def login(func): print("in Login") return func@logindef tv(name): print("{name} in TV".format(name = name))#tv = login(tv)tv('Jack')# out:# in Login# Jack in TV
但是出现问题,注销最后的执行语句仍有输出,原因在于@login的调用,即@login相当于执行了tv = login(tv) 所以才有输出。
def login(func): print("in Login") return func@logindef tv(name): print("{name} in TV".format(name = name))#tv = login(tv)#tv('Jack')# out:# in Login
如下调整可解决
def login(func): def inner(arg): print("in Login") # return func func(arg) return inner@logindef tv(name): print("{name} in TV".format(name = name))#tv = login(tv)tv('Jack')# out:# in Login# Jack in TV
简单的递归函数
#!/usr/bin/env python#递归函数def calc(num): print("Number:",num) if num/2 > 1: calc(num/2) print("After Number:",num/2)calc(10)# Number: 10# Number: 5.0# Number: 2.5# Number: 1.25# After Number: 1.25# After Number: 2.5# After Number: 5.0
递归实现斐波那契数列
# Fibonacci sequence# F[n]=F[n-1]+F[n-2](n>=2,F[0]=1,F[1]=1)# 斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...fibList = [1,1]def getFib(fibList): print(fibList) if fibList[-1] + fibList[-2] < 300: fibList.append(fibList[-1] + fibList[-2]) getFib(fibList) pass passgetFib(fibList)print("[FINAL]:",fibList)# [1, 1]# [1, 1, 2]# [1, 1, 2, 3]# [1, 1, 2, 3, 5]# [1, 1, 2, 3, 5, 8]# [1, 1, 2, 3, 5, 8, 13]# [1, 1, 2, 3, 5, 8, 13, 21]# [1, 1, 2, 3, 5, 8, 13, 21, 34]# [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]# [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]# [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]# [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233]# [FINAL]: [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233]
0 0
- python 装饰器 递归函数 记录
- python如何装饰递归函数
- python 递归和装饰器
- PYTHON 函数装饰器
- python 函数装饰器
- Python函数:装饰器
- Python 函数装饰器
- python函数装饰器
- python函数装饰器
- python 装饰器函数
- 记录学习python装饰器
- python自学笔记(6)--Python函数式编程、函数的装饰器、递归
- Python限制函数运行时间,记录函数运行时间的装饰器
- Python 函数装饰器探讨
- python函数之一 装饰器
- python 函数装饰器学习
- Python中的函数、装饰器
- Python - 函数/方法装饰器
- HAUT 取石子
- ESP8266学习笔记4:ESP8266的SmartConfig
- 凯撒加密和栅栏加密 python
- 组合数学 POJ 1019 Number Sequence
- springmvc参数绑定
- python 装饰器 递归函数 记录
- Android API Guide for Media Apps(二)——媒体会话的使用(Working with a Mession)
- UWP开发技巧:实现SMB协议操作文件服务器文件
- 线性回归问题
- HeadFirstSQL学习笔记(四)
- array.sort的深入理解
- 2017.2.3 Java有感4
- [11]Linux网络编程模型
- poj1692 Crossed Matchings(dp,最长公共子序列变形,好题)