Python面向对象

Python面向对象

1 基本案例

#coding=utf-8


class Person:
    '''人类封装'''
    def __init__(self, name, age)
        self._name = name
        self._age = age

    def grow(self)
        self._age += 1

    def name(self)
        return self._name

    def age(self)
        return self._age

tom = Person("tom", 18)
print(tom._name, tom._age)
print(tom.name(), tom.age())

print Person.__doc__
print type(tom)
print dir(Person)

关键总结:

  • 使用class来定义类,class关键字后跟类名,类名必须是合格的标识符
  • 使用类名加括号来创建对象,创建对象时,类的__init__函数自动被调用
  • 在init函数中,进行对象初始化,一般成员变量名,以_开始定义
  • 使用句点操作符,来访问类成员变量和函数
  • 类定义中,第一个没有赋值的字符串,用于描述类本身,可以通过__doc__得到
  • 在类中使用def来定义函数,函数至少有一个self参数
  • self变量指向“本身”,这个“本身”指调用该函数的对象
  • 可以通过dir来列举类成员

2. 内置属性

  • __dict__: 类属性字典
  • __doc__: 类文档
  • __name__: 类名
  • __module__: 类所在模块
  • __bases__: 父类元组

3. 内置方法

  • __init__: 构造函数
  • __del__: 析构函数
  • __repr__: 打包方法
  • __str__: 转字符串方法
  • __cmp__: 比较方法

4. 继承案例

class Student(Person):
    '''学生类封装'''
    def __init__(self, name, age, grade):
        Person.__init__(self, name, age)
        self._grade = grade

    def upgrade(self):
        self._grade += 1

    def grade(self):
        return self._grade

xiaoming = Student("xiaoming", 18, 5)
print(xiaoming.name())

关键总结:

  • 类名后可以跟一个元组,元组中的类为该类的父类
  • 子类也可以称之为父类的派生类
  • 子类定义的对象,可以访问父类中定义的函数和变量
  • 构造函数需要显式的调用父类的构造函数

标签: none

已有 2 条评论

  1. 111 111

    老师好

添加新评论