复习一 # 闭包:定义在函数内部的函数(被函数嵌套的函数) # 装饰器:闭包的一个应用场景 -- 为一个函数添加新功能的工具 # 开放封闭原则:不能修改源代码,不能修改调用方式,但可以对外提供增加新功能的特性 def outer(): num = 10 # L => E local:是函数内的名字空间,包括局部变
基础知识(开胃菜) Python 1、类继承 有如下的一段代码: class A(object): def show(self): print 'base show'class B(A): def show(self): print 'derived show'obj = B()obj.show() 如何调用类A的show方法了。 方法如下: obj.__class__ = Aobj.show() class 方法指向了类对象,只用
迭代器的概念:从装多个值的容器中一次取出一个值给外界 器:包含了多个值得容器 迭代:循环反馈(一次从容器中取出一个值) 通过迭代器取值的优缺点: 优点:不依赖索引取值 缺点:不能计算长度,不能指定取值(只能从前往后逐一取值)遍历:被遍历的对象必须是有序容器 案例; ls='asasd'for i in ls:
今日内容: 一、迭代器 二、迭代对象 三、可迭代对象 四、for 循环迭代器 五、生成器 六、枚举 ++++++++ 一、迭代器 1.定义: 循环反馈的容器(集合类型) 每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 1.2为什么用迭代
dir 和 dict dir 不区分对象,会打印所有内容。dict当是类调用时会打印所有内容,但当是对象调用时,不会打印其他同类型都有的属性,只会打印自己特有的属性。 def newAtr(classname, parclasss, attrdict): newdict = {} c = classname.lower()[0] for k, v in attrdict
Python在处理函数中的yield语句时,返回yield语句所指定的对象/值,但不会终止当前函数的执行,而是暂时中断,保留当前的执行状态/上下文,等函数再次被调用时则接着上次yield语句继续执行,如遇到yield则再次中断并保留当前的执行状态/上下文,如此循环直到函数结束或遇到return语句时才产
demofunction Fun(){} var foo = new Fun();foo.__proto__ === Fun.prototype 摘要 1、js本身不提供类实现,es6引入了class,但只是语法糖。通过原型这种机制,JavaScript 中的对象从其他对象继承功能特性。2、对象有__proto__属性,如foo.__proto__指向foo的原型。3、函数有protot
封装 不想让别人改我的属性 # 干脆不想让你看 # 用户名和密码 广义上的封装 : 把方法和属性根据根据类别装到类中 狭义上的封装 : 私有化的方法和属性 方法\静态变量\实例变量(对象属性)都可以私有化 所谓的私有化 : 就是只能在类的内部可见,类的外部是不能访问或者
python中一切皆对象 如 字典——类 {‘k’:'v'} ——对象 列表 —— 类 [1,2 ]—— 对象 自定义 类 class 类名: 属性 = ‘初始攻击力5’ print(类名.属性) 类名的作用,就是操作属性 查看属性 1 class Person: # 类名 2 country = 'China' #
# -*- coding:utf-8 -*-# 1,# 一,银行开户(当卡号已经被开户时需要判断),开户完成后打印出当前开户者的信息,包括用户名,卡号,余额# 二,存钱(判断卡号是否存在,不存在的情况下无法存钱)# 三,取钱(除了判断卡号卡,还要判断余额是否足够取)# 四,获取银行用户信息(只有银行自己才能打
76.递归函数停止的条件? 递归的终止条件一般定义在递归函数内部,在递归调用前要做一个条件判断,根据判断的结果选择是继续调用自身,还是return;返回终止递归。 终止的条件:1、判断递归的次数是否达到某一限定值2、判断运算的结果是否达到某个范围等,根据设计的目的来选择 参考地址:https://
1. 迭代器协议: 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走,不能往前退)。 2. 可迭代对象:实现了迭代器协议的对象(即对象内部定义了一个__iter__)。 3. python的内部工具(如for循环、sum、min、max函数等)通过迭
迭代器 什么是迭代器(iterator) 器指的某种工具, 迭代指的是更新换代的过程,例如应用程序的版本更新从1.0 变成 1.1 再1.2 迭代的目的是要根据上一个结果,产生下一个结果,这是一个重复的过程,但不是单纯的重复 迭代器就是,一种根据上一个结果得到下一个结
双下方法 定义: 双下方法是特殊方法,他是解释器提供的,由双下线加方法名加双下划线 __方法名__具有特殊意义的方法 双下方法主要是Python源码程序员使用的,元编程 我们在开发中尽量不要使用双下方法,但是深入研究双下方法,更有益于我们阅读源码 1.__len__ 计算长度 s = 'nihaoas
迭代器: 1.函数名的使用 2.闭包 3.迭代器 3.1 可迭代对象 3.2 迭代器 难********** 4.递归 def func(): pass print(func) # 函数的内存地址 def func(): print(1) a = func a() func() # 函数名可以当做值赋值给变量 def func(): print(1) def fu
# 迭代器:# 1.函数名的使用 # def func():# pass## print(func) # 函数的内存地址# a()# func() # 函数名可以当做值赋值给变量# def func():# print(1)## def func2():# print(2)## li = [func,func2]# print(li) # 函数名可以当做元素放到容器里# def func():#
栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺
# 单例模式:对一个类多次实例化,但只实例化出同一个对象class Mymeta(type): def __init__(self,class_name,class_bases,class_dic): if not class_name.istitle(): raise TypeError('类名的首字母必须大写!') if '__doc__' not in class_dic or not cl
class Person(object): def run(self): print("run") def eat(self, food): print("eat" + food) def __init__(self,name,age,height,weight,money): self.name=name self.age=age self.height=height
算法特征:自由空间, 定长编码 核心操作:选择: 择优选择交叉: 全空间可遍历变异: 增强全空间的搜索能力 编码选择:二进制编码, 字符编码, 小数编码注意: 编码选择以方便核心的三个操作为准, 具体问题具体分析. 适用范围:一般来讲, 如果一个优化问题的特征空间满足遗传算法的算法特
单例模式:永远用一个对象的实例 使用时遵循规则 :创建的对象跟对象之间内部封装的值是一模一样的,则没必要创建多个对象 两种使用方式: 1. low版单例: 缺点调用方式变化 Foo().get_instance() class Foo(object): instance = None def _init_(self): pass @classmetho
python之--------封装 一、封装: 补充封装: 封装: 体现在两点: 1、数据的封装(将数据封装到对象中) obj = Foo('宝宝',22) 2、封装方法和属性,将一类操作封装到一个类中 class Foo: def __init__(self,name,age):
1 class Typed: 2 def __init__(self,key,expected_type): 3 self.key=key 4 self.expected_type=expected_type 5 def __get__(self, instance, owner): 6 print('get方法') 7 return instance.__dict__[self.key] 8 d
property 内置装饰器函数 只在面向对象使用 把方法当初属性使用(方法不加参数) 例子: class Rectangle: def __init__(self,long,wide,color): self.long = long self.wide = wide self.__color = color @property def area(self): r
ykorm: import re class CountError(Exception): def __init__(self,msg): self.msg = msg class Field: def __init__(self,name,column_type,primary_key,default): self.name = name self.column_type = column_type self.primary_key