1. 面向对象编程
面向对象编程
是最有效的软件编写方法之一。
在面向对象编程中,现实世界中的事物和情景,均可以使用 类
来编写表示。将要描述的对象提取公共行为,编写成类。
基于编写的类,可以创建 对象
,使得每个对象自动具备所提取的公共行为。
然后可根据实际情况,赋予每个对象自己独有的特性。
上面描述的根据类来创建对象的过程,被称为 实例化
。这让你能够使用 类的实例
。
2. 类的创建和使用
2.1 创建类
使用 类
几乎可以模拟任何东西。
比如 学生类Student
,可以用来表示任意学生。任意学生包含的信息都有 学号no
、 姓名name
、 籍贯nativePlace
等。对于每个学生的行为,都有 上课attend Class
、 下课finish Class
等。
所以可以创建 Student类
来表示。
示例(student.py):
class Student():
def __init__(self, no, name, nativePlace):
"""初始化属性no, name, nativePlace"""
self.no = no
self.name = name
self.nativePlace = nativePlace
def attend_class(self):
print(self.name + '正在上课')
def finish_class(self):
print(self.name + '已经下课')
关于这个类的定义,几点说明及注意事项如下:
- Student:这是类的名字。约定所有单词的首字母大写。
- 类中的函数称为方法。
- _init_() :初始化方法,当根据Student类来创建实例时,该方法将自动执行。约定开头和末尾各有两个下划线,避免命名冲突。
- _init_()中的self:self形参必不可少,还必须位于其他形参之前。这是因为类的创建、调用时,都自动传递实参self,这个self是一个指向实例本身的引用,使得实例能够访问类中的属性和方法。当创建实例时,self不需要传递参数,只需要给后边的值(no、name等)赋值即可。
- 属性:像上面的no、name变量,在初始化时,均使用了self 前缀,这种变量可以给类中的所有方法使用,还可以通过类的任何实例来访问,这种变量称为属性。
- 其他方法:如attend_class()和finish_class()方法,一般为当前类的具有的通用方法,其中的参数self使得该方法能够访问类中的属性。这些方法可以继续添加其他的,不在属性内的形参。
- 私有方法和属性:Python约定名称以双下划线“__”开头但不以它结尾的方法或属性,都是私有的,其他则都不是私有部分。
2.2 使用类和示例
类如何来使?先看下面这个示例。
示例:
class Student:
def __init__(self, no, name, nativePlace):
"""初始化属性no, name, nativePlace"""
self.no = no
self.name = name
self.nativePlace = nativePlace
# 【 1 】这里也可以给属性指定默认值
self.school = '武汉理工大学'
def attend_class(self):
return self.name + '正在上课'
# 【 2 】类中的方法,可以增加必要的形参
def attend_class_2(self, address):
return self.name + '正在 ' + address + ' 上课'
def attend_class_3(self, address):
return self.name +