面向对象编程
面向对象编程是最有效的软件编写方法之一。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
面向对象和面向过程的区别
比如我想吃西红柿炒蛋,怎么运用面向过程的方法来解决这个问题呢?我需要先去菜市场买西红柿和鸡蛋->再在厨房中点火->浇油->放入鸡蛋和西红柿->加盐和其他佐料->炒菜->把西红柿炒蛋盛到盘子里->关火,才能达到需求;如果运用面向对象方法来解决这个问题,我们只需要打开饿了么,点击下单西红柿炒蛋,就可以吃到这道菜了。
面向过程方法需要经过特定线性的步骤,不能随意更改,上述例子中,如果我们先打开火,再去买菜,那么不仅吃不到西红柿炒蛋,还会把厨房给烧了。面向对象方法在宏观上,以完成目标为导向,能有效提高效率。
类
类时面向对象编程常用的方法。类是Python的一个对象,在面向对象编程中,可以用类来表示现实世界中的事物和情景,还可以基于这些类来创建对象。根据类来创建对象称为实例化。
创建类
使用类几乎可以模拟任何东西,例如,创建一个表示小狗的类:
class Dog:
"""一次模拟小狗的简单尝试"""
def __init__(self,name,age):
"""初始化属性name和age"""
self.name = name
self.age = age
def sit(self):
"""模拟小狗收到命令时蹲下"""
print(f"{self.name} is now sitting.")
def roll_over(self):
"""模拟小狗收到命令时打滚"""
print(f"{self.name} rolled over.")
根据约定,在Python中,首字母大写的名称指的是类。这个类定义没有圆括号,因为要从空白处创建这个类。
根据类创建实例
my_dog = Dog('Willie',6)
访问属性
访问属性,采用句点表示法。
句点表示法在Python中很常用,这种语法演示了Python如何获悉属性的值。在这里,Python先找到实例my_dog,再查找与该实例相关联的属性name。在Dog类中引用这个属性时,使用的是self.name。
调用方法
同样使用句点表示法。使用实例对象调用类方法。
my_dog.sit()
__init__()方法
类中的函数称为方法,方法和函数本质上一样,只是叫法不同。
__init__()方法是初始化方法,根据类创建实例对象时,会自动调用这个方法。注意这个方法的名称,它开头和结尾处都有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。