Python面向对象编程1

Python面向对象编程学习笔记


一、两大编程思想对比
对比维度面向过程面向对象
核心思想功能上的封装(函数为核心)属性和行为的封装(对象为核心)
典型语言C语言Python、Java
代码组织方式按步骤拆解任务(线性思维)以对象为单位组织代码(模块化思维)
适用场景简单逻辑、小型项目复杂系统、团队协作开发
代码复用性低(函数级复用)高(通过继承、组合复用)

二、类和对象基础
  1. 概念
    类(Class):抽象模板(如"汽车设计图")
    对象(Object):类的具体实例(如"一辆宝马汽车")

  2. 自定义类与创建对象

class Student:
    # 类属性(所有对象共享)
    school = "清华大学"

    # 初始化方法(构造函数)
    def __init__(self, name, age):
        # 实例属性(每个对象独立)
        self.name = name  
        self.age = age

    # 实例方法(操作对象数据)
    def study(self):
        print(f"{self.name}正在学习")

# 创建对象
stu1 = Student("张三", 20)
stu2 = Student("李四", 22)

三、类的组成
成员类型定义方式访问方式特点
类属性直接定义在类内部类名.属性名所有对象共享
实例属性通过self.属性名定义对象.属性名每个对象独立
实例方法def method(self): ...对象.method()操作实例属性
静态方法@staticmethod装饰器类名.method()无需访问类/实例属性
类方法@classmethod装饰器类名.method()操作类属性,第一个参数是cls

示例代码:

class Calculator:
    # 类属性
    PI = 3.14159

    @classmethod
    def circle_area(cls, r):
        return cls.PI * r ** 2  # 操作类属性

    @staticmethod
    def add(a, b):
        return a + b            # 与类无关的工具方法

四、动态绑定属性和方法

Python允许为特定对象单独添加属性和方法(不影响其他对象):

# 动态添加属性
stu1.gender = "男"  

# 动态绑定方法
import types
def show_info(self):
    print(f"Name: {self.name}, Age: {self.age}")

stu1.show = types.MethodType(show_info, stu1)
stu1.show()

五、面向对象三大特征
  1. 封装
    • 隐藏对象内部实现细节,通过公共接口访问
    • Python实现:使用单下划线_属性名约定私有属性

  2. 继承
    • 子类继承父类属性和方法,实现代码复用
    • Python支持多继承

class Animal:
    def eat(self):
        print("吃东西")

class Dog(Animal):
    def bark(self):
        print("汪汪叫")
  1. 多态
    • 相同方法名在不同类中有不同实现
    • Python通过"鸭子类型"实现(关注行为而非类型)
class Cat:
    def speak(self):
        print("喵喵")

class Duck:
    def speak(self):
        print("嘎嘎")

def animal_speak(obj):
    obj.speak()  # 只要对象有speak()方法即可

学习建议
  1. 多练习自定义类创建对象
  2. 理解不同方法类型的适用场景
  3. 尝试实现简单的类继承体系
  4. 通过实际项目体会三大特征的作用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

盐可颂

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

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

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

打赏作者

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

抵扣说明:

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

余额充值