从零开始重新学习 Python 3:面向对象编程:Python 高级编程的精髓,你还不来学习吗?

  • 公众号:人生只不过是一场投资
  • 温馨提示:每个笔记文档都会绑定一个笔记资源;手机端可能看不到,网页端请自行下载。

想要代码更优雅、更易维护?快来学习面向对象编程,开启 Python 高级编程之旅!

前言

在编程世界,一直流传着两种截然不同的编程范式:面向过程编程面向对象编程

想象一下,你需要建造一座房子:

  • 面向过程: 你需要亲力亲为,从搬砖、砌墙、封顶,一步一步地完成所有步骤,就像流水线上的工人,专注于每一个具体的操作。

  • 面向对象: 你可以雇佣建筑工人、电工、水管工等专业人员,他们各自负责自己的领域,最终协作完成房屋建造,就像一个团队,每个人都各司其职。

面向对象编程 (OOP) 就像一个“高效的建筑团队”,将程序分解成一个个独立的对象,每个对象都有自己的数据和行为,通过对象之间的交互完成复杂的功能,使代码更易于组织、复用和维护。

一、理解对象:一切皆对象

在 Python 中,一切皆对象!

对象 (Object) 是指现实世界中具体的实体,例如一个人、一辆汽车、一本书等。每个对象都具有属性 (Attribute)方法 (Method)

  • 属性:描述对象的特征,例如人的姓名、年龄、身高,汽车的颜色、品牌、型号等。
  • 方法:描述对象的行为,例如人可以吃饭、睡觉、工作,汽车可以启动、加速、刹车等。
# 创建一个名为 person 的字典,表示一个人
person = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

# 打印 person 的属性
print(person["name"])  # 输出:Alice
print(person["age"])  # 输出:30

# 使用函数模拟 person 的方法
def say_hello(person):
    print(f"Hello, my name is {person['name']}.")

say_hello(person)  # 输出:Hello, my name is Alice.

二、类:对象的“ blueprints”

类 (Class) 是对象的“ blueprints”,定义了对象的属性和方法。

例如,“狗”是一个类,它定义了狗共有的属性(姓名、年龄等)和方法(吃饭、睡觉等)。

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!")

三、创建和使用对象:实例化

根据类创建对象的过程称为实例化 (Instantiation)。

# 创建两个 Dog 实例
my_dog = Dog('Willie', 6)
your_dog = Dog('Lucy', 3)

# 访问对象的属性
print(f"My dog's name is {my_dog.name}.")
print(f"My dog is {my_dog.age} years old.")

# 调用对象的方法
my_dog.sit() 
my_dog.roll_over() 

print(f"\nYour dog's name is {your_dog.name}.")
print(f"Your dog is {your_dog.age} years old.")
your_dog.sit() 

四、继承:代码复用的“利器”

继承 (Inheritance) 就像家族血统一样,子类可以继承父类的属性和方法,并且可以添加自己的属性和方法。

class Car:
	"""车的类"""
	def __init__(self, make, model, year):
		pass


class ElectricCar(Car):
  """电动车的独特之处"""

  def __init__(self, make, model, year):
    """初始化父类的属性"""
    super().__init__(make, model, year)
    self.battery_size = 75

  def describe_battery(self):
    """打印电池容量信息"""
    print(f"This car has a {self.battery_size}-kWh battery.")


my_tesla = ElectricCar('tesla', 'model s', 2019)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()

五、封装、多态:OOP 的重要支柱

  • 封装 (Encapsulation): 将对象的内部实现细节隐藏起来,只对外提供公共接口,就像一个“黑盒子”,用户只需要知道如何使用它,而不需要了解它的内部构造

  • 多态 (Polymorphism): 同一种行为,不同的对象表现出不同的形式。例如,猫和狗都是动物类,他们都会“叫”,但猫的叫声是“喵喵”,而狗的叫声是“汪汪”。

六、总结:

面向对象编程是 Python 高级编程的精髓,它可以让你的代码更易于组织、复用和维护, 是编写大型项目的必备技能。

  • 对象 是 OOP 的核心,一切皆对象。
  • 是对象的“蓝图”,定义了对象的属性和方法。
  • 继承 可以实现代码复用,提高开发效率。
  • 封装多态 是 OOP 的重要支柱,保证了代码的健壮性和可扩展性。

从现在开始,拥抱面向对象编程,开启你的 Python 高级编程之旅吧!

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ょ镜花う水月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值