面向对象编程(Object Oriented Programming,OOP)是一种软件设计思想,它具有封装、继承和多态这三大特性。
学习面向对象编程首先要了解语法结构,包括类的定义,不同方法的定义及不同变量的定义及相应的使用。
首当其冲,需要学习的是类,它用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。定义类的语法结构如下:
class 类名(首字符大写):
类体(方法、函数和属性……)
注:如果类体中暂时没有确定如何实现(即没有任何类体语句)时,则需要用pass占位
类中的方法包括特定方法(如:__init__方法,该方法类似于构造函数、__del__方法,该方法类似于析构函数等)、普通方法和类方法
1.特定方法
特定的方法是在特殊情况下或当使用特别语法时由 Python 调用的,而不是在代码中象类方法和实例方法那样直接调用。下面只讲特定方法中的2个__init__和__del__:
(1)__init__方法,该方法在创建实例时被调用,用于初始化实例属性。其定义的语法:
def __init__(self,[参数1,...]):
self.xxx = 参数1
……
(2)__del__方法,该方法在销毁实例时被调用,用于销毁实例属性或关闭资源。其定义的语法:
def __del__(self):
方法体
2.类方法
类方法是由类名直接调用的方法,该方法不依赖于任何实例。@classmethod 是一个函数修饰符,它表示接下来的是一个类方法,且类方法中第一个参数为cls
@classmethod
def 类方法(cls,[参数1,...]):
方法体/pass
3.静态方法
静态方法也是由类名直接调用的方法,该方法不依赖于任何实例。@staticmethod是一个函数修饰符,它表示接下来的是一个静态方法,与类方法定义的区别在于,不包含参数cls
@staticmethod
def 静态方法(cl[参数1,...]):
方法体/pass
4.实例方法
实例方法需由实例调用,方法的第一个参数为self
def 实例方法(self,[参数1,...]):
方法体/pass
实例方法根据访问权限的不同包括公有方法和私有方法,私有方法的名称以"__"开头;共有方法可以直接用实例调用,私有方法收到保护,只能在类中其它的实例方法中使用self进行调用,保证私有方法仅在当前类中被使用,也更好的体现了封装的思想。