面向对象 一.面向对象代码示例: 1 class Test(): #类的定义 2 car = "buick" #类变量,定义在类里方法外,可被对象直接调用,具有全局效果 3 def __init__(self): #构造方法 4 self.name = 1 #成员变量,可以在类的不同方法间调用,也可以由类创建的对象进行调用 5 print("name=",self.name) 6 7 def say(self): #类方法必须包含参数self,且为第一个参数 8 a…
自定义迭代器 一 .生成器与yield ''' 我们得到一个迭代器通常都是调用可迭代对象的__iter__方法 ,例如 list.iter() 得到一个迭代器, 但是当list很大时候,就违背了python的初衷,假设我们要创造一个包含1000w个值的可迭代对象,总不可能先把 这1000w个值放入列表,然后调用__iter__() 方法吧,太占内存 ,必须得提供一种机制打破python内置的产生 迭代器的方式 ,所以自定义迭代器应运而生,即生成器. 在Python中, 一边循环一边计算的机制,…
复习 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.返回内部函数对象---->  延迟执行, 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 装饰器:装饰器名就是外层函数 @outer @outer  # fn = outer(fn) def fn(): pass 今日内容 1.带参装饰器  |  2.wrapper  |  3.可迭代对象 |   4.迭代器对象  |  5.for 迭代器工作原理 |  6.枚举对象…
迭代器大概念 # 迭代器:循环反馈的容器(集合类型)# -- 不同于索引取值,但也可以循环的从容器对象中从前往后逐个返回内部的值​# 优点:不依赖索引,完成取值# 缺点:不能计算长度,不能指定位取值(只能从前往后逐一取值) 可迭代对象 # 可迭代对象:内置有__iter__()方法的对象,称之为可迭代对象​# 可迭代对象:str | list | tuple | set | dict | range() | enumerate() | file | 生成器对象 迭代器对象 # 迭代器对象:内置有…
迭代器 # 迭代器:循环反馈的容器(集合类型)# -- 不同于索引取值,但也可以循环的从容器对象中从前往后逐个返回内部的值​# 优点:不依赖索引,完成取值# 缺点:不能计算长度,不能指定位取值(只能从前往后逐一取值) 可迭代对象 # 可迭代对象:内置有__iter__()方法的对象,称之为可迭代对象​# 可迭代对象:str | list | tuple | set | dict | range() | enumerate() | file | 生成器对象 迭代器对象 # 迭代器对象:内置有__n…
迭代器协议定义了一种标准的方式来产生一个有限或无限序列的值,并且当所有的值都已经被迭代后,就会有一个默认的返回值. 当一个对象只有满足下述条件才会被认为是一个迭代器:它实现了一个 next() 的方法并且拥有特殊含义. MDN 迭代器协议 let fridge = { name: "卡萨帝冰箱", color: "白色", brand: "海尔" }; fridge[Symbol.iterator] = () => { let keys =…
## 复习 '''函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 装饰器:装饰器名就是外层函数 @outer@outer  # fn = outer(fn)def fn(): pass''' def wrap(func):    def inner(*args, **kwagrs):        # res = func(*args, **kwagrs)    …
复习 ''' 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 装饰器:装饰器名就是外层函数 @outer @outer # fn = outer(fn) def fn(): pass ''' def wrap(func): def inner(*args, **kwagrs): # res = func(*args, **kwagrs) res = outer.i…
python基础02 条件控制 python条件语句是通过一条或多条语句的执行结果(Ture或者False)来执行的代码块 python中用elif代替了else if,所以if语句的关键字为:if-elif-else. 注意 每个条件后面都要用冒号:,表示接下来是满足条件后要执行的语句块 使用缩进来划分语句块,相同缩进数的语句在一期组成一个语句块 在python中没有switch-case语句 #if-else语句 age = int(input("请输入年龄:")) if age…
Python 3.x与Python 2.x之间存在着较多的语法细节差异.今天在看Python核心编程的时候,说到了自定义迭代器对象.于是动手将源码打了一遍,原书代码如下: class AnyIter(object): def __init__(self, data, safe=False): """ The initialization of iterators """ self.safe = safe self.iter = iter(data…