面向对象:Object Oriented Programming,简称OOP,即面向对象程序设计。
类:Class,类是用来描述具有相同属性和方法对象的集合。
对象:Object,是类的具体实例。
举个例子,学生都有姓名和分数,姓名与分数就属于一样的属性,这里就能设置一个类,去记录学生的姓名和成绩。
说明一下属性和方法
属性:Attribute,用以描述所有对象公有的属性。
方法:Method,包括在类里面的函数,也叫类函数,区别于类之外的函数,用来实现某些功能。
通过关键词class来创建一个类class Student():
def __init__(self,name,score):
self.name = name
self.score = score
def out(self):
print("%s:%s"%(self.name,self.score))
必须完成类的实例化,才可以创建出类的具体的对象,并给它分配存储空间。因此说对象是类的一个实例。
接下来创建一个对象,仅需添加两行代码就能实现
Student1 = Student('Anny','100')
Student2 = Student('Mike','90')
类的私有属性和私有方法
类里面的私有属性和私有方法都是以双下划线__开头的,私有属性和方法不能在类的外部直接使用或访问。将score变为私有属性,然后print(Student.score),就会发现报错。但是调用show的时候不会报错,这是由于show是类里面的函数,因此能访问私有变量。
私有方法也是同样的道理,应该留心的是私有方法必须含有self参数并且将其作为第一个参数。
在面向对象的编程中,一般情况下是不会让外部类直接访问类内部的属性和方法,而是向外部提供一些按钮,对其内部的成员进行访问,以保证程序的安全性,这就叫封装。
@property
def scores(self):
print("该学生成绩为%s"%self.score)
加上装饰器之后不用加括号可直接调用。
类的继承
面向对象编程最有利的就是避免重复的代码,也就是将一段代码重复使用,继承算是一种方法。
先定义一个基类或者父类,再通过class 类名(父类):pass创建子类,这样一来,子类获得了父类的所有属性和方法,这种现象就叫做继承。
再写段代码,用Schoolmember表示父类,姓名和年龄是所有人的属性,然而老师有工资(salary)这个专有属性,学生有分数(score)这个专有属性
透过代码能够得出在创建子类的过程中,要手动调用父类的构造函数__init__来完成子类的创建。
在子类中调用父类的方法时,要加上父类的类名前缀,且必须带self参数变量。例SchoolMember.tell(self)。
要是子类调用了每个方法或者属性,Python会先在父类中寻找,找不到就会去子类寻找。
在实际的项目中,一个子类可以继承多个父类。
芝麻IP代理软件支持电脑客户端,安卓手机、ios手机,模拟器,虚拟机,云手机一键更换全国IP地址,欢迎访问: www.zhimaruanjian.com 。