1.面向对象的程序设计
对象object
——包含属性和行为,通过描述属性和行为来描述一个对象,是程序的基本单元。
- 对象=属性(特征)+方法(行为)
类class
——具有相同属性和方法的对象的集合,对象是类的具体实例
- 类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化。
- 类不代表具体的事物,而对象表示具体的事物
创建类
属性:类当中用于描述所有对象共同特征的变量或数据
方法:类当中的函数,用于区别类外面的函数,用来实现某些功能
#创建一个学生类
class Student:
#定义学生属性,初始化方法
def __init__(self,name,score):
'''
__init__是类的构造函数,这个方法会在创建时完成初始化
self:在python中会明确的把代表自身实例的self作为第一个参数传入
self向__init__传递参数
由于类可以起到模板的作用,所以在创建实例时,把一些认为必须绑定的属性强制填写进去'''
self.name=name
self.score=score
#定义打印学生信息的方法
def show(self):
print("Name:{}.Score:{}".format(self.name,self.score))
#具体的学生对象
st1=Student("张三",100)
st2=Student("李四",99)
print(st1.name,st1.score)#------>张三 100
print(st1.show())#------>Name:张三.Score:100
- 有了__init__()方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__()方法匹配的参数
- self不需要传入,python解释器自己会把实例变量传进去
- 和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,且调用时不用传递该参数。
class Animal:
def __init__(self,name):
self.name=name
print('动物名称实例化')
def eat(self):
print(self.name+'要吃东西啦!')
def drink(self):
print(self.name+'要喝水啦!')
cat=Animal('波斯猫')#------>动物名称实例化
print(cat.name)#------->波斯猫
cat.eat()#------>波斯猫要吃东西啦!
cat.drink()#------>波斯猫要喝水啦!
类继承
- 继承是类与类之间的一种关系,是一种子类与父类的关系
- 用代码表示继承,语句是:
class A(B): #A:子类名,B:父类名
class Person:
def __init__(self,name):
self.name=name
print('调用父类构造函数')
def eat(self):
print('吃海鲜去')
class Student(Person):
def __init__(self):
print('调用子类构造方法')
def study(self):
print('Python语言')
s=Student() #实例化子类 ------>调用子类构造方法
s.study() #调用子类方法 ------>Python语言
s.eat() #调用父类方法 ------>吃海鲜去
2.面向过程的编程
- 面向过程编程:当解决一个问题时,面向过程会把事情拆分成一个个函数和数据,然后按照一定的顺序执行的问题解决。
- 面向对象编程:面向对象会把事物抽象成对象的概念,在问题中有哪些对象,然后给对象赋一些属性和方法,然后让每个对象去执行自己的方法,问题得到解决。
3.各自优缺点