Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain

4. Python 面向对象编程

类与对象

面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它使用“对象”来设计软件。Python 是一种支持面向对象编程的语言,通过类和对象,开发者可以更好地组织和管理代码。

1. 类与对象的基本概念
  • 类(Class):类是对象的蓝图或模板,它定义了对象的属性和方法。类是一个抽象的概念,描述了具有相同属性和行为的一组对象。
  • 对象(Object):对象是类的实例。通过类创建的对象具有类定义的属性和方法。对象是具体的实体,可以执行类中定义的操作。
2. 定义类

在 Python 中,使用 class 关键字来定义一个类。类名通常采用驼峰命名法(CamelCase)。

class Dog:
    # 类属性
    species = "Canis familiaris"

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

    # 实例方法
    def bark(self):
        return f"{self.name} says woof!"
  • 类属性:类属性是所有实例共享的属性。例如,species 是所有 Dog 实例共享的属性。
  • 实例属性:实例属性是每个对象独有的属性。例如,name 和 age 是每个 Dog 实例独有的属性。
  • 实例方法:实例方法是定义在类中的函数,用于操作实例属性。例如,bark 方法用于让狗叫。
3. 创建对象

通过类创建对象的过程称为实例化。使用类名加括号的方式可以创建一个对象。

# 创建 Dog 类的实例
my_dog = Dog("Buddy", 5)

# 访问实例属性
print(my_dog.name)  # 输出: Buddy
print(my_dog.age)   # 输出: 5

# 调用实例方法
print(my_dog.bark())  # 输出: Buddy says woof!
4. 类的继承

继承是面向对象编程的一个重要特性,它允许一个类继承另一个类的属性和方法。通过继承,子类可以复用父类的代码,并可以扩展或修改父类的行为。

class Bulldog(Dog):
    # 重写父类的方法
    def bark(self):
        return f"{self.name} says woof! (but louder)"

# 创建 Bulldog 类的实例
bulldog = Bulldog("Max", 3)
print(bulldog.bark())  # 输出: Max says woof! (but louder)
  • 父类(基类):被继承的类称为父类或基类。例如,Dog 是 Bulldog 的父类。
  • 子类(派生类):继承父类的类称为子类或派生类。例如,Bulldog 是 Dog 的子类。
5. 类的特殊方法

Python 提供了一些特殊方法(也称为魔术方法),用于定义类的行为。这些方法以双下划线 __ 开头和结尾。

class Dog:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 重写 __str__ 方法
    def __str__(self):
        return f"{self.name} is {self.age} years old."

# 创建 Dog 类的实例
my_dog = Dog("Buddy", 5)
print(my_dog)  # 输出: Buddy is 5 years old.
  • __init__:初始化方法,用于创建对象时初始化实例属性。
  • __str__:返回对象的字符串表示,通常用于打印对象。
6. 类的封装

封装是面向对象编程的另一个重要特性,它隐藏了对象的内部实现细节,只暴露必要的接口。通过封装,可以提高代码的安全性和可维护性。

class Dog:
    def __init__(self, name, age):
        self.name = name
        self.__age = age  # 私有属性

    def get_age(self):
        return self.__age

    def set_age(self, age):
        if age > 0:
            self.__age = age

# 创建 Dog 类的实例
my_dog = Dog("Buddy", 5)

# 访问私有属性
print(my_dog.get_age())  # 输出: 5

# 修改私有属性
my_dog.set_age(6)
print(my_dog.get_age())  # 输出: 6
  • 私有属性:以双下划线 __ 开头的属性是私有属性,只能在类内部访问。
  • 公有方法:通过公有方法(如 get_age 和 set_age)可以访问和修改私有属性。
7. 总结

类与对象是面向对象编程的核心概念。通过类,可以定义对象的属性和方法;通过对象,可以操作这些属性和方法。Python 提供了丰富的语法和特性来支持面向对象编程,包括继承、封装、特殊方法等。掌握这些概念和技巧,可以帮助开发者编写更加模块化、可复用和可维护的代码。

Last Updated:: 3/17/25, 7:20 PM