1,面向对象:
定义:
与面向过程对比:
- 面向过程:数学逻辑的映射,学会做个好员工
- 面向对象:生活逻辑的映射,学会做个好领导
官方定义:
- 类:具有相同特征(属性和行为)的事物的抽象
- 对象:某个类的具象
编程语言:
- 类:是一种自定义的数据类
- 对象:某个类类型的变量
2,面向对象语法
- 类的定义:
class 类名:
内容
- 语法说明:
- 定义类需要使用关键字class
- 类名:原则上只要符合标识符命名规范即可,但是通常我们都使用大驼峰(每个单词首字母大写)风格命名
- 如:UserName
- 类名后面的':'不要忘记
- 类的内容要进行整体缩进
- 行为:通过方法体现,在类中定义相关的函数即可(第一个参数通常是self)
- 属性:通过变量体现,在需要时动态添加,很多时候定义类时没有体现
- 成员访问:
- 属性:对象.属性名
- 方法:对象.方法名()
3,实例:
#定义类
class Person:
#行为通过方法体现
#吃饭
def eat(self):
print('红烧鸡腿我喜欢吃')
#睡觉
def sleep(self):
print('睡觉也是一种生活态度')
#定义对象
liang = Person()
#调用方法
liang.eat()
liang.sleep()
#属性是动态添加的
liang.name = '亮亮'
#获取属性
print(liang.name)
# print(liang)
4,面向对象技术简介
- 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
- 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
- 数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
- 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
- 实例变量:定义在方法中的变量,只作用于当前实例的类。
- 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。当多个类出现大量相同代码,可以使用继承
- 实例化:创建一个类的实例,类的具体对象。
- 方法:类中定义的函数。
- 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
5,Python内置类属性
- __dict__ : 类的属性(包含一个字典,由类的数据属性组成)
- __doc__ :类的文档字符串
- __name__: 类名
- __module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
- __bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)
6,面向对象的三个特点:
封装
继承
多态