语句表达式:

在Python中支持遍历循环的对象:可迭代器对象,支持迭代协议的对象

比如列表list没有迭代功能只是可迭代对象

迭代:迭代协议 --> 例:f.__next__() 属于f的迭代方法,全局的迭代方法为next(f)

迭代工具 --> for,…推导…  map…

迭代器对象    已经实现

可迭代对象     iter() --> __iter__()用于生成迭代器

iter(f) is f 判断f是否有迭代功能

内置可迭代对象 --> range()  map(函数,可迭代对象) zip() …

注意:list在数据量小的时候操作简单方便,在数据量大的时候占用过大内存,不如支持迭代协议的对象,用到某个值就取出某个值,对内存的消耗小。

函数:

Why最大化代码重用、最小化代码冗余、过程分解

        定义: def 函数名(参数1,…):函数体

       调用:函数名(实际参数)

       变量作用域:Built-in、Global(global)、Enclousure(nonlocal)、Local

       参数:传递1. 不可变类型,传递副本给函数,函数内操作不影响原始值

2. 可变类型,传递地址引用,函数内操作可能会影响原始值

传副本可以不改变原始值

匹配 位置匹配、关键字匹配、默认值(调用时省略传值)、*args任意数量参数(接收元组)、**kwargs(接收字典表)

        Lambda表达式:定义匿名函数,基本格式 lambda 参数1,… :函数

       高级工具:map(函数,可迭代对象)、filter(函数,可迭代对象)

!!!注意委托模式的使用!!!  代码实例:

def hello_chinese(name):
print('您好:', name) def hello_english(name):
print('hello', name) def hello_japanese(name):
print('こんにちは', name) hello = hello_english
# hello = lambda name:print('你好', name)
hello('tom') #这个步骤就委托 hello_english 函数
def hello(action, name): 
action(name)
hello(hello_japanese, 'tom') #这个步骤就委托 hello_japanese 函数
#hello(lambda name: print('nllpko', name), 'tom')

包与模块管理

模块

指令:import  from  importlib.reload(模块)

Why:代码重用  命名空间  实现数据或服务共享

步骤:1找到模块文件  2编译为字节代码  3运行模块文件

如果想使用模块的最新改变的结果可使用

import importlib

importlib.reload(模块)   (注意在调用模块时直接(import 模块名)不能使用(from…import…)形式)

搜索范围:1程序主目录  2环境变量  3标准库  4扩展库

面向对象编程

步骤:OOA面向对象分析  OOD面向对象设计  OOP面向对象编程

实现:1分析对象的特征行为  2写类描述对象模版  3实例化,模拟过程

特征:封装 继承 多态

def __repr__(self): return…   或    def __str__(self): return…

print(对象)    可以得到想要打印与对象相关的内容

实例代码

class Book:
count = 0 def __init__(self, title, price=0.0, author=None):
self.title = title
self.price = price
self.author = author
Book.count += 1 def __del__(self):
Book.count -= 1 def __repr__(self):
return '<图书: {}>'.format(self.title) def __str__(self):
return '[图书:{}, 价格:{}]'.format(self.title, self.price) def print_info(self):
print(self.title, self.price, self.author) if __name__ == '__main__':
book1 = Book('Python经典', price = 29.0, author = 'Tom')
book2 = Book('Flask')
book3 = Book('ASP.net') del(book3)
print(book1) # 运行后会看到[图书:Python经典, 价格:29.0] # print('图书数量:{}'.format(Book.count))

Python复习笔记02的更多相关文章

  1. Python复习笔记(四)高阶函数/返回函数/匿名函数/偏函数/装饰器

    一.map/reduce map map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次 作用到序列的每个元素,并把结果作为新的Iterator返回. reduce r ...

  2. Python复习笔记(一)高级变量类型

    目标 列表元组 字典 字符串 公共方法 变量高级 01. 列表 02. 元组 03. 字典 04. 字符串 1)判断类型 - 9 2) 查找和替换 - 7 3) 大小写转换 - 5 4) 文本对齐 - ...

  3. Python复习笔记-字典和文件操作

    抽时间回顾2年前自己做过的python工具,突然感觉不像自己写的,看来好久没用过python的字典和文件操作了,查询资料和网页,整理如下: 一.字典 键值对的集合(map) 字典是以大括号“{}”包围 ...

  4. 【python学习笔记02】python的数据类型2

    列表和元组之间的主要区别是:列表括在括号([])和它们的元素和大小是可以改变的,而元组在圆括号(),不能被更新.元组可以被认为是只读列表. 存储在一个列表中的值可以使用切片操作符来访问([]和[:]) ...

  5. Python复习笔记(十)Http协议--Web服务器-并发服务器

    1. HTTP协议(超文本传输协议) 浏览器===>服务器发送的请求格式如下:(浏览器告诉服务器,浏览器的信息) GET / HTTP/1.1 Host: www.baidu.com Conne ...

  6. Python复习笔记(七)线程和进程

    1. 多任务 并行:真的多任务 并发:假的多任务 2. 多任务-线程 Python的 Thread模块是比较底层的模块,Python的 Threading模块 是对Thread做了一些包装,可以更加方 ...

  7. Python复习笔记(六)网络编程(udp/tcp)

    一.网络-udp(用户数据报协议) 用户数据报协议 类似写信,不安全,数据有可能丢 1.1 ip地址 注意: IP地址127.0.0.1 ~ 127.255.255.255 用于回路测试 私有ip地址 ...

  8. Python复习笔记(五)面向对象

    1. __init__方法 # 1. 为对象在内存 中分配空间 -- 创建对象 # 2. 为对象属性 设置初始值 -- 初始化方法(init)+-------------- # 3. __init__ ...

  9. Python复习笔记(三)函数进阶

    问题 1:在函数内部,针对参数使用 赋值语句,会不会影响调用函数时传递的 实参变量? —— 不会! 无论传递的参数是 可变 还是 不可变 只要 针对参数 使用 赋值语句,会在 函数内部 修改 局部变量 ...

随机推荐

  1. PHP 之源代码加密与解密,加密后可直接运行

    方式一: <?php /** * Created by PhpStorm. * User: Yang * Date: 2019/10/16 * Time: 10:25 */ class Enci ...

  2. slax自启动程序

    Fluxbox 本身提供了自启动程序的功能.~/.fluxbox/startup 文件是一个像启动 Fluxbox 一样自启动应用程序的脚本.# 标记是注释. 一个简单的例子: #!/bin/sh # ...

  3. ML_Review_PCA(Ch4)

    Note sth about PCA(Principal Component Analysis)   ML6月20日就要考试了,准备日更博客,来记录复习一下这次ML课所学习的一些方法. 博客是在参考老 ...

  4. 为什么ROC曲线不受样本不均衡问题的影响

    转自:https://blog.csdn.net/songyunli1111/article/details/82285266 在对分类模型的评价标准中,除了常用的错误率,精确率,召回率和F1度量外, ...

  5. bad object refs/remotes/origin/HEAD

    How to handle git gc fatal: bad object refs/remotes/origin/HEAD error: failed to run repack I random ...

  6. android: View, SurfaceView, GLSurfaceView, TextureView 区别与联系

    区别与联系 View: 显示视图,内置画布,提供了图形绘制函数.触屏事件.按键事件函数等,必须在UI主线程内更新画面,速度较慢: SurfaceView: 基于view视图进行拓展的视图类,更适合2D ...

  7. CV3——学习笔记-续

    使用Jupyter.https://jupyter.org/install https://baijiahao.baidu.com/s?id=1601883438842526311&wfr=s ...

  8. python小白之矩阵matrix笔记(updating)

    Matrix #python学习之矩阵matrix 2018.4.18 # -*- coding: UTF-8 -*- from numpy import * import numpy as np i ...

  9. spring整合atomikos实现分布式事务

    前言 Atomikos 是一个为Java平台提供增值服务的并且开源类事务管理器,主要用于处理跨数据库事务,比如某个指令在A库和B库都有写操作,业务上要求A库和B库的写操作要具有原子性,这时候就可以用到 ...

  10. Python之queue模块以及生产消费者模型

    队列 队列类似于一条管道,元素先进先出,进put(arg),取get() 有一点需要注意的是:队列都是在内存中操作,进程退出,队列清空,另外,队列也是一个阻塞的形态. 队列分类 队列有很多中,但都依赖 ...