装饰器——闭包

# 装饰器  闭包

'''

    如果一个内部函数对外部(非全局)的变量进行了引用,那么内部函数被认为是闭包

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

'''

def f():
x = 100
y = 200 def mytext():
return x + y return mytext s=f()
print(s())

装饰器——高潮1

import time

def foo():
print("foo..........")
time.sleep(2) def root():
print("root---------")
time.sleep(1) def get_time(h):
start = time.time()
h
stop = time.time()
print("运行时间为: %s" % (stop - start)) get_time(root())

装饰器——高潮2

import time

def get_time(h):
def inner():
start = time.time()
h()
stop = time.time()
print("运行时间为: %s" % (stop - start)) return inner @get_time
def foo():
print("foo..........")
time.sleep(2) @get_time
def root():
print("root---------")
time.sleep(1) foo()

装饰器——函数功能添加参数

import time

def get_time(f):
def inner(*s):
start = time.time()
f(*s)
end = time.time()
print("使用时长为: %s" % (end - start)) return inner @get_time
def add(*a):
sum = 0
for i in a:
sum += i;
print(sum)
time.sleep(2) add(2, 3, 5, 7)

列表生成式

# 列表生成式
a = [x * x for x in range(10)]
print(a)

列表生成器

# 列表生成器

s = (x * 2 for x in range(5))
# print(s) # print(s.__next__())
print(next(s)) print(next(s))
print(next(s))
print(next(s))
print(next(s)) print("*-*--**--*--*-*-*-*---*") def foo():
print("ok1")
yield 1
print("ok2")
yield 2 g = foo()
# next(g)
# next(g)
for i in g:
# while True:
# i = next(foo())
print(i)
print("/*//***/*/***//*/**/*") a = [1, 2, 3]

斐波那契数列

def fib(m):
i, a, b = 0, 0, 1
while i < m:
print(b)
a, b = b, a + b
i += 1 # fib(10) z = 10
c = 20 print("------------") z, c = c, z + c print(z)
print(c) print("*************") z = 10
c = 20 z = c
c = z + c print(z)
print(c) print("-------------")

Python学习基础(三)——装饰器,列表生成器,斐波那契数列的更多相关文章

  1. python学习笔记(五):装饰器、生成器、内置函数、json

    一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里 ...

  2. python学习之day5,装饰器,生成器,迭代器,json,pickle

    1.装饰器 import os import time def auth(type): def timeer(func): def inner(*args,**kwargs): start = tim ...

  3. python学习笔记之装饰器、生成器、内置函数、json(五)

    一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里面 ...

  4. python 给定n,返回n以内的斐波那契数列

    方式一:函数 def fabs(n): a, b = 0, 1 while b < n: print(b, end=' ') a, b = b, a+b fabs(1000) 方式二:列表 re ...

  5. 斐波拉契数列(用JavaScript和Python实现)

    1.用JavaScript 判断斐波拉契数列第n个数是多少 //需求:封装一个函数,求斐波那契数列的第n项 //斐波拉契数列 var n=parseInt(prompt("输入你想知道的斐波 ...

  6. 5.python(迭代器,装饰器,生成器,基本算法,正则)

    一,迭代器 1.迭代器  (1)迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束.迭代器只能往前不会后退.  (2)对于原生支持随机访问的数据结构(如t ...

  7. python笔记-4(装饰器、生成器、迭代器)

    一.熟练掌握装饰器的原理 (在装饰器学习的过程中,查了看了很多资料,个人感觉走了很多的弯路,这个笔记,分享我的理解,希望能帮助到一些人.本文对装饰器的描述,侧重点是条理与逻辑思路,想通过从无到有的方式 ...

  8. Python(迭代器 生成器 装饰器 递归 斐波那契数列)

    1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大优 ...

  9. python学习笔记之装饰器、递归、算法(第四天)

    参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...

随机推荐

  1. NodeJs--HTTP源码分析

    在github上按下按键t,就可以呼出仓库搜索的面板(在大型项目中方便检索文件),检索出http.js文件检索出来,通过ctrl+F来搜索某个方法. _http_outgoing 带下划线的是私有模块 ...

  2. Error #2148

    参考:https://blog.csdn.net/watersevenmmfx/article/details/52980804 chrome flash 安全沙箱冲突 SecurityError: ...

  3. Unity shader学习之屏幕后期处理效果之边缘检测

    边缘检测的原理是利用一些边缘检测算子对图像进行卷积操作. 转载请注明出处:http://www.cnblogs.com/jietian331/p/7232707.html 例如: 代码如下: usin ...

  4. node.js中ws模块创建服务端和客户端,网页WebSocket客户端

    首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...

  5. Yii ActiveRecord生命周期

  6. 深度解读 AlphaGo 算法原理

    http://blog.csdn.net/songrotek/article/details/51065143 http://blog.csdn.net/dinosoft/article/detail ...

  7. ReactiveCocoa(I)

    ReactiveCocoa常见类 1. RAC中最核心的类RACSiganl: RACSiganl:信号类,一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据 解析: 信号类 ...

  8. session_start 统计实时访客人数

    void Session_Start(object sender, EventArgs e) { Application.Lock(); Application["OnLine"] ...

  9. .net 缓存

    缓存有很多实现方法,所有这些可以被分为两类,基于内存的缓存和基于磁盘的缓存: 1.  内存驻留缓存——包含在内存中临时存储数据的所有实现方法,通常在以下情况下使用: a)       应用程序频繁使用 ...

  10. pycharm的版本对应问题

    如果版本不对应往往会出现很多问题,需要各种方法才能解决,现记录一下我工作中遇到的版本问题,以下版本一般情况下是可以直接安装使用的. 目前一直在使用的版本: