语句表达式:

在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. Webpack 核心模块 tapable 解析(转)

        原文出自:https://www.pandashen.com 前言 Webpack 是一个现代 JavaScript 应用程序的静态模块打包器,是对前端项目实现自动化和优化必不可少的工具,We ...

  2. Java核心复习——J.U.C AbstractQueuedSynchronizer

    第一眼看到AbstractQueuedSynchronizer,通常都会有这几个问题. AbstractQueuedSynchronizer为什么要搞这么一个类? 这个类是干什么的.有什么用? 这个类 ...

  3. 详解JDBC对象

    1. DriverManager (1) 注册驱动 Class.forName("com.mysql.cj.jdbc.Driver"); 真正注册驱动的是驱动包下 jdbc 文件夹 ...

  4. oracle 导入导出功能

    关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. - EXPDP和IMPDP是服务端的工具程序,他 ...

  5. Asis_2016_b00ks wp

    目录 程序基本信息 程序漏洞 利用思路 exp脚本 参考 程序基本信息 程序漏洞 有一个读入函数,程序的所有输入都靠它读取,这个程序有个很明显的off_by_one漏洞,在输入时多输入一个0字符. 利 ...

  6. 通过AS提交AndroidLibrary到JCenter仓库

    注意事项: //版本需要一致,如下版本对应gradle-4.4-all.zip dependencies { classpath 'com.android.tools.build:gradle:3.1 ...

  7. How To Install P4 Tutorials

    安装一些依赖 sudo apt-get update sudo apt-get upgrade sudo apt-get install automake cmake libjudy-dev libp ...

  8. <JavaScript>几道javascript练习题

    问题1: 作用域(Scope) 考虑以下代码: (function() { var a = b = 5; })(); console.log(b); 控制台(console)会打印出什么? 答案 上述 ...

  9. 问题:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile)

    一:问题 今天编译maven 项目构建失败,提示内容如下: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler ...

  10. int 和String之间的相互转换

    int ---> String 1. 和 "" 进行拼接 2. 使用String类中的静态方法valueOf: public static String valueOf(in ...