Python学习笔记(十七):

  1. 面向对象的三大特性:封装、继承和多态

1. 类

  1. 类的定义

* class是关键字,表示类
* 创建对象,类名称后加括号即可
* ps:类中的函数第一个参数必须是self(详细见:类的三大特性之封装)
* 类中定义的函数叫做 “方法”

  • 代码示例
# 创建类
class Foo:

    def Bar(self):
        print 'Bar'

    def Hello(self, name):
        print 'i am %s' %name

# 根据类Foo创建对象obj
obj = Foo() 
obj.Bar()            #执行Bar方法
obj.Hello('wupeiqi') #执行Hello方法 
  1. 类的成员
  • 字段
    • 普通字段:保存在对象中,只能通过对象调用
    • 静态字段:保存在类中,可以通过方法和对象调用
  • 方法
    • 普通方法:保存在类中,通过对象调用
    • 静态方法:给普通方法添加一个@staticmethod修饰器,直接通过类调用
    • 类方法:给普通方法添加一个@classmethod修饰器,直接通过类调用
    • 如果对象中需要保存一些值,执行某功能时,需要使用对象中的值 -> 普通方法
    • 不需要任何对象中的值 -> 静态方法
  • 属性,特性
    • 给普通方法添加一个@property修饰器,像调用字段一样调用

2. 面向对象的三大特性:封装、继承和多态

  1. 封装
  • 封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。
  • 所以,在使用面向对象的封装特性时,需要:
    • 将内容封装到某处
    • 从某处调用被封装的内容
  1. 继承
  • 继承,面向对象中的继承和现实生活中的继承相同,即:子可以继承父的内容。
  • 例如:
    • 猫可以:喵喵叫、吃、喝、拉、撒
    • 狗可以:汪汪叫、吃、喝、拉、撒
  1. 多态
  • Pyhon不支持Java和C#这一类强类型语言中多态的写法,但是原生多态,其Python崇尚“鸭子类型”。