首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
python第四周:装饰器、迭代器、内置方法、数据序列化
】的更多相关文章
day04 装饰器 迭代器&生成器 Json & pickle 数据序列化 内置函数
回顾下上次的内容 转码过程: 先decode 为 Unicode(万国码 ) 然后encode 成需要的格式 3.0 默认是Unicode 不是UTF-8 所以不需要指定 如果非要转为UTF-8 就再指定 变量的查找顺序: 1 从里往外找,先找自己本地的local 没有就会去上一级找,直到找到此变量, 全局变量不能在函数里改变指的是纯字符的, list 及字典等会改变 函数递归: 一层一层进去, return 一层一层出来 特点: # 明确的结束条件 # 问题规…
【Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数】
一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(First-Class Object)呢? 在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量.可以作为元素添加到集合对象中.可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的. 1.函数身为一个对象,拥有对象模型的三个通用属性:id.类型.和值.…
Python--函数对象@命名空间与作用域@包函数@装饰器@迭代器@内置函数
一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(First-Class Object)呢? 在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量.可以作为元素添加到集合对象中.可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的. 1.函数身为一个对象,拥有对象模型的三个通用属性:id.类型.和值.…
python-day4装饰器、生成器、迭代器、内置方法、序列化、软件目录
@生成器generator a=(i*2 for i in range(10)) a.__next__()#等同于next(a),基本都不用,多用for循环a.send(m)#将m传为yield的值 @生成器实例(IO异步的雏形)可看4-11-44-14‘’ import time def consumer(name): print("%s 准备吃包子啦!" %name) while True: baozi = yield print("包子[%s]来了,被[%s]吃了!&q…
python基础语法18 类的内置方法(魔法方法),单例模式
类的内置方法(魔法方法): 凡是在类内部定义,以__开头__结尾的方法,都是类的内置方法,也称之为魔法方法. 类的内置方法,会在某种条件满足下自动触发. 内置方法如下: __new__: 在__init__触发前,自动触发. 调用该类时,内部会通过__new__产生一个新的对象. __init__: 在调用类时自动触发. 通过产生的对象自动调用__init__() class Demo(object): # 条件: __new__: 在__init__触发前,自动触发. def __new__(…
4月17日 python学习总结 反射、object内置方法、元类
一.反射 下述四个函数是专门用来操作类与对象属性的,如何操作? 通过字符串来操作类与对象的属性,这种操作称为反射 class People: country="China" def __init__(self,name): self.name=name def tell(self): print('%s is aaa' %self.name) obj=People('egon') 1.hasattr print(hasattr(People,'country')) print('cou…
Python之面向对象:类的内置方法
1.def __add__(self,other): c1+c2 两个实例的加法操作就是执行__add__()方法 2.__str__(self): print一个实例的时候,执行的是__str__()这个内置方法 eg: class Vector(object): def __init__(self,a,b): self.a = a self.b = b def __str__(self): return 'Vector…
Python之面向对象之反射、内置方法
一.静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静态方法的不同点: 类方法必须有一个cls参数表示这个类,可以使用类属性 静态方法不需要参数 绑定方法:分为普通方法和类方法 普通方法:默认有一个self对象传进来,并且只能被对象调用-------绑定…
python for循环while循环数据类型内置方法
while 条件: 条件成立之后循环执行的子代码块 每次执行完循环体子代码之后都会重新判断条件是否成立 如果成立则继续执行子代码如果不成立则退出 break用于结束本层循环 ### 一:continue:结束本次循环,开始下一次循环 1.直接让代码再次回到while循环的条件判断处,重新判断条件在执行,这就叫做continue break结束本层循环 # continue结束本次循环 continue会让循环体代码直接回到条件判断处重新判断 ### 2.while+else 当while循环没有…
Python: list列表的11个内置方法
先来逼逼两句: 在实际开发中,经常需要将一组(不只一个)数据存储起来,以便后边的代码使用.在VBA中有使用数组,可以把多个数据存储到一起,通过数组下标可以访问数组中的每个元素.Python 中没有数组,但是加入了更加强大的列表(list).下面就对列表的内置方法进行介绍. 通过dir(list)可以查看列表的属性和内置方法. print(dir(list)) Python学习交流Q群:660193417### ['__add__', '__class__', '__contains__', '_…
python - setitem/getitem/delitem类的内置方法
# class 内置方法: # __setitem__ # __getitem__ # __delitem__ class Test(): X = 100 def __getitem__(self, item): print("getitem") def __setitem__(self, key, value): print("setitem") def __delitem__(self, key): print("delitem") xx =…
python 入门基础4 --数据类型及内置方法
今日目录: 零.解压赋值+for循环 一. 可变/不可变和有序/无序 二.基本数据类型及内置方法 1.整型 int 2.浮点型float 3.字符串类型 4.列表类型 三.后期补充内容 零.解压赋值+for循环 # for循环 + 解压赋值 info = [ [","male"], [","male"], ] for name,age,gender in info: print("姓名:%s , 年龄:%s , 性别:%s"%…
Python装饰器、内置函数之金兰契友
装饰器:装饰器的实质就是一个闭包,而闭包又是嵌套函数的一种.所以也可以理解装饰器是一种特殊的函数.因为程序一般都遵守开放封闭原则,软件在设计初期不可能把所有情况都想到,所以一般软件都支持功能上的扩展,而对源代码的修改是封闭的.开放封闭原则主要体现在两个方面: 对功能扩展开放:意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况. 对源码修改封闭:意味着类一旦设计完成,就可以独立完成其工作,而不要对源码进行任何修改. 对于上述的开放封闭原则有的时候确实很难完成,幸好装饰器可以满足放封闭…
万恶之源 - Python装饰器及内置函数
装饰器 听名字应该知道这是一个装饰的东西,我们今天就来讲解一下装饰器,有的铁子们应该听说,有的没有听说过.没有关系我告诉你们这是一个很神奇的东西 这个有多神奇呢? 我们先来复习一下闭包 def func1(): name = "alex" def func2(): print(name) # 闭包 func2() func1() 这就是闭包,那刚刚说的很神奇的东西呢?,为什么又说闭包了呢? 机智的铁子们已经猜到,装饰器和闭包是有点关系的,是滴没错. 那什么是装饰…
Python装饰器及内置函数
装饰器 听名字应该知道这是一个装饰的东西,我们今天就来讲解一下装饰器,有的铁子们应该听说,有的没有听说过.没有关系我告诉你们这是一个很神奇的东西 这个有多神奇呢? 我们先来复习一下闭包 def func1(): name = "alex" def func2(): print(name) # 闭包 func2() func1() 这就是闭包,那刚刚说的很神奇的东西呢?,为什么又说闭包了呢? 机智的铁子们已经猜到,装饰器和闭包是有点关系的,是滴没错. 那什么是装饰…
python笔记5:装饰器、内置函数、json
装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1) print('run....') 现有一个新的需求,希望可以记录下函数的运行时间,需要在代码中计算时间的代码: def run(): start_time = time.time() time.sleep(1) print('run....') end_time = time.time() pr…
文成小盆友python-num4 装饰器,内置函数
一 .python 内置函数补充 chr() -- 返回所给参数对应的 ASCII 对应的字符,与ord()相反 # -*- coding:utf-8 -*- # Author:wencheng.zhao a = chr(65) print(a) b = chr(66) print(b) ##输出如下: A B Process finished with exit code 0 ord --返回所给的值在ASCII中对应的数字,与chr()作用相反 # -*- coding:utf-8 -*-…
Python中的装饰器,迭代器,生成器
1. 装饰器 装饰器他人的器具,本身可以是任意可调用对象,被装饰者也可以是任意可调用对象. 强调装饰器的原则:1 不修改被装饰对象的源代码 2 不修改被装饰对象的调用方式 装饰器的目标:在遵循1和2的前提下,为被装饰对象添加上新功能 开放封闭原则:对修改封闭,对扩展开放 import time def timmer(fun): start_time=time.time() fun() end_time=time.time() def fun1(): print("in func1")…
day0318装饰器和内置函数
一.装饰器 1.装饰器: 解释:装饰器的本事就是一个函数,不改动主代码的情况下,增加新功能.返回值也是一个函数对象. 2.装饰器工作过程 import time def func(): print('主功能') time.sleep(1) def timer(f): #形参就是替换原函数func def inner(): print('开始') start_time=time.time() f() #调用函数func end_time=time.time() print('运行时间:',end_…
Python基础4 迭代器,生成器,装饰器,Json和pickle 数据序列化
本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],我要求你把列表里的每个值加1,你怎么实现?你可能会想到2种方式 >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> b = [] >>> for i in…
python中的装饰器迭代器生成器
装饰器: 定义:本质是函数(装饰其它函数) 为其它函数添加附加功能 原则: 1 不能修改被装饰函数源代码 2 不修改被装饰函数调用方式 实现装饰器知识储备: 1 函数即‘’变量‘’ 2 高阶函数 a 把一个函数名当实参传给另外一个函数(在不修改被装饰函数的情况下 为其添加功能) b 返回值中包含函数名(不修改函数的调用方式) 3嵌套函数 高阶函数 + 嵌套函数 => 装饰器 简单版高阶函数 import time def bar(): time.sleep(3) print('in the…
[转载]Python使用@property装饰器--getter和setter方法变成属性
原贴:为什么Python不需要getter和setter getter 和 setter在java中被广泛使用.一个好的java编程准则为:将所有属性设置为私有的,同时为属性写getter和setter函数以供外部使用. 这样做的好处是属性的具体实现被隐藏,当未来需要修改时,只需要修改getter 和 setter即可,而不用修改代码中所有引用这个属性的地方.可能做的修改为: 在获取或设置属性时打一条日志 设置属性时,对值对进检查 设置发生时, 修改设置的值 获取属性时,动态地计算值 可谓是好处…
python面向对象基础(四)内置方法 __xx__之new与init
__init__和__new__方法 __new__() 是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在 Python 中存在于类里面的构造方法 __init__() 负责将类的实例化,而在 __init__() 启动之前,__new__() 决定是否要使用该 __init__() 方法, 因为__new__() 可以调用其他类的构造方法或者直接返回别的对象来作为本类的实例. 如果将类比喻为工厂,那么__init__()方法则是该工厂的生产工人,__init__()方法…
python面向对象基础(三)内置方法 __xx__
__str__和__repr__,__format__ 改变对象的字符串显示__str__,__repr__ 自定制格式化字符串__format__ #_*_coding:utf-8_*_ format_dict={ '格式1':'{obj.name}-{obj.addr}-{obj.type}',#学校名-学校地址-学校类型 '格式2':'{obj.type}:{obj.name}:{obj.addr}',#学校类型:学校名:学校地址 '格式3':'{obj.type}/{obj.addr}/…
python基础操作以及其常用内置方法
#可变类型: 值变了,但是id没有变,证明没有生成新的值而是在改变原值,原值是可变类型#不可变类型:值变了,id也跟着变,证明是生成了新的值而不是在改变原值,原值是不可变 # x=10# print(id(x))# x=11# print(id(x))# y=['a','b','c']print(id(y))y[0]='A'print(y)print(id(y)) #一: 整型int# ======================================基本使用=============…
python's twenty_fourth day for me 内置方法
str repr: 1,当需要使用__str__的场景时找不到__str__就找__repr__ 2,当需要使用__repr__的场景时找不到__repr__的时候就找父类的repr. 3,双下repr是双下str的备胎. class Teacher: def __init__(self,name,age): self.name = name self.age = age def __str__(self): return "Teacher's object %s" % self.n…
python基础-字符串(str)类型及内置方法
字符串-str 用途:多用于记录描述性的内容 定义方法: # 可用'','''''',"","""""" 都可以用于定义字符串,没有区别,但是不能混用 str1 = 'name' str2 = '''name''' str3 = "name" str4 = """name""" # 注意,如果字符串前加了一个r,则表示字符串的转义符号不生效 str…
python学习日记(OOP——类的内置方法)
__str__和__repr__ 改变对象的字符串显示__str__,__repr__ 我们先定义一个Student类,打印一个实例: class Student(object): def __init__(self,name): self.name = name print(Student('libai')) 打印出一堆<__main__.Student object at 0x000002311102EE10>,不好看. 怎么才能打印得好看呢?只需要定义好__str__()方法,返回一个好…
Python全栈之路----函数----内置方法
Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() staticmethod() bin() eval() int() open() str() bool() exec() isinstance() ord() sum() byte…
python语法_列表list_列表内置方法
list 列表 a = ['kevin','alxe','gm','dql','gyx'] a[1] = 'alxe' #按照索引获取数据,索引按照0开始,第一个数据的索引为0 切片: a[1:3] = 'alxe','gm' 左边包括,右边不包括 a[1:] = 'alxe','gm','dql','gyx' 取从第二个到最后一个 a[1:-1]='alxe','gm','dql' 取从第二个到倒数第二个 a[1:-1:1]='alxe','gm','dql' 隔一个取一个 a[1:-1:2…