[2015-08-08] python019

Python闭包:闭包叫lexical closure

  • 内层函数可使用外层函数的变量

函数中使用yield,会返回一个生成器对象

yield

装饰器

  • 装饰器本身是一个函数,用于装饰其他函数
  • 功能:增强被装饰函数的功能
  • 装饰器一般接受一个函数对象作为参数,以对其进行增强

    装饰器

递归:

  • 递归需要边界条件,递归前进段和递归返回段

    递归

函数的设计规范
耦合性:
(1)通过参数接受输入,以及通过return产生输出以保证函数的独立性
(2)尽量减少使用全局变量进行函数间通信
(3)不要在函数中修改可变类型的参数
(4)避免直接改变定义在另外一个模块中的变量

聚合性:
(1)每个函数都应该有一个单一的、统一的目标
(2)每个函数的功能都应该相对简单


Python类与面向对象

类:将同一种具体物事的共同特性抽象出来的表现

  • 状态和转换这些状态的操作组成
  • 状态就是数据
    • 变量:就是类属性
  • 操作即为方法
    • 函数:操作变量引用的数据的代码

类间关系:

  • 依赖(“user-a”)
    一个类的方法操纵另外一个类的对象

  • 聚合(“has-a”)
    类A的对象包含类B的对象

  • 继承(“is-a”)
    描述特殊与一般关系

面向对象编程的原则:

  • 面向对象的模型机制有3个原则:封装、继承及多态
  • 封装(Encapsulation)
    隐藏实现方案细节
    将代码及其处理的数据绑定在一起的一种编程机制,用于保证程序和数据不受外部干扰且不会被误用

  • 继承(Inheritance)
    一个对象获得另一个对象属性的过程,用于实现按层分类的概念
    一个深度继承的子类继承了类层次中它的每个祖先的所有属性
    超类、基类、父类
    子类、派生类

  • 多态(Polymorphism)
    允许一个接口被多个通用的类动作使用的特性,具体使用哪个动作与应用场合相关
    “一个接口,多个方法”
    用于为一组相关的动作设计一个通用的接口,以降低程序复杂性

Python类和对象:

  • 类是一种数据结构,可用于创建实例
  • 一般情况下,类封装了数据和可用于该数据的方法
  • Python类是一个可调用对象,即类对象
  • Python2.2之后,类是一种自定义类型,而实例则是声明某个自定义类型的变量
  • 实例初始化:
    通过调用类来创建实例
    instance = ClassName(args...)
    类在实例化时可以使用__init__和__del__两个特殊的方法

Python中创建类:

    class ClassName(bases):
                'class docunebtation string'
                class_suit
  • 超类是一个或多个用于继承的父类的集合
  • 类体可以包含:声明语句、类成员定义、数据属性、方法
  • 注意:
    如果不存在继承关系,ClassName后面的”(bases)”可以不提供
    类文档为可选

class语句的一般形式:

    class ClassName(bases):
        data = value                    定义数据属性
        def method(self,...):           定义方法属性
        self.member = value 

Python类方法及调用:

  • 实例(对象)通常包含属性
    • 可调用的属性:方法
      object.method()
    • 数据属性
  • 在OOP中,实例就像是带有“数据”的记录,而类是处理这些记录的”程序“
    • 通过实例调用方法相当于调用所属类的方法来处理当前实例
      • 类似instance.method(args…)会被自动转换为class.method(instance,args…)
    • 因此,类中每个方法必须具有self参数,它隐含当前实例之意
    • 在方法内对self属性做赋值运算会产生每个实例自己的属性
    • Python规定,没有实例,方法不允许被调用,此即为”绑定“

Python类和实例的属性:

  • class语句中的赋值语句会创建类属性
  • 在类方法中对传给方法的特殊参数self进行赋值会创建实例属性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值