Python复习笔记02

语句表达式:

在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))
原文地址:https://www.cnblogs.com/yang901112/p/11305678.html