语句表达式:

在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. ZR#957

    ZR#957 解法: 首先 $ T $ 必须得要是 $ S $ 的子序列,不然不存在好的下标序列,因此一定无解. 考虑判断一个串 $ T $ 是不是 $ S $ 子序列的贪心做法:每次从没有匹配的位置 ...

  2. wx.navigateTo的url不生效的问题

    比如我要要从index页面跳转到logs. 在跳转的时候应该用switchTab,而不是wx.navigateTo 看api这句话 https://developers.weixin.qq.com/m ...

  3. 使用vscode快速建立vue模板

    当我们希望每次新建.vue文件后,vscode能够根据配置,自动生成我们想要的内容. 打开vscode编辑器,依次选择“文件 -> 首选项 -> 用户代码片段”,此时,会弹出一个搜索框,我 ...

  4. Arts打卡第6周

    Algorithm.主要是为了编程训练和学习. 每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard). 进行编程训练,如果不训练你看再多的算法书,你依然不 ...

  5. 2018-2019-2 《网络对抗技术》Exp9 Web安全基础 20165114

    Exp9 Web安全基础 目录 一.实验内容 二.基础问题回答 (1)SQL注入攻击原理,如何防御 (2)XSS攻击的原理,如何防御 (3)CSRF攻击原理,如何防御 三.实践过程记录 3.1 注入缺 ...

  6. arcgis python 表属性转html

    import arcpy import sys import string import os tablePath = arcpy.GetParameterAsText(0) filePath = a ...

  7. iframe窗口嵌套,子窗口跳转重叠在父窗口的问题

    window.top //最顶层窗口 window.self //当前窗口 window.parent //父级窗口 "window.location.href"."lo ...

  8. hadoop 2.7.3伪分布式环境运行官方wordcount

    hadoop 2.7.3伪分布式模式运行wordcount 基本环境: 系统:win7 虚机环境:virtualBox 虚机:centos 7 hadoop版本:2.7.3 本次以伪分布式模式来运行w ...

  9. linux物理内存与虚拟内存

    http://www.360doc.com/content/14/0123/14/14450281_347336709.shtml 1.查看内存占用情况 $ free -m -h total used ...

  10. VUE el-input正则验证

    ①只能输入大于0的整数 check(value) { let reg = /^[-]\d*$/; var _this = this; if (value) { if (new RegExp(reg). ...