企业建立自己网站主要方式,淮南本地网,网站设计方面有什么公司,微信网站建设费记什么科目目录 专栏列表前言一、面向对象编程概述1.1 类和对象1.2 继承1.3 多态1.4 封装 二、Python 中的类和对象2.1 定义类2.2 __init__ 函数解释2.3 创建对象 三、继承3.1 基本继承3.2 创建子类对象 四、多态五、封装六. 访问限制七、综合实例结语 专栏列表
Python教程#xff08;一… 目录 专栏列表前言一、面向对象编程概述1.1 类和对象1.2 继承1.3 多态1.4 封装 二、Python 中的类和对象2.1 定义类2.2 __init__ 函数解释2.3 创建对象 三、继承3.1 基本继承3.2 创建子类对象 四、多态五、封装六. 访问限制七、综合实例结语 专栏列表
Python教程一环境搭建及PyCharm安装Python 教程二语法与数据结构Python 教程三字符串特性大全Python 教程四Python运算符合集Python 教程五理解条件语句和循环结构Python 教程六函数式编程Python 教程七match…case 模式匹配Python 教程八高级特性【高逼格代码】Python 教程九内置模块与第三方模块Python教程十面向对象编程OOP 正文开始 如果觉得文章对您有帮助请帮我三连订阅谢谢 前言
在现代编程中面向对象编程OOP是一种非常重要的编程范式。Python 作为一种高级编程语言广泛支持面向对象编程。本篇文章将详细介绍 Python 中 OOP 的基本概念和应用并通过实例帮助你更好地理解和掌握 OOP。
一、面向对象编程概述
面向对象编程是一种将现实世界中的概念映射到程序中的编程范式。在 OOP 中基本概念包括类Class、对象Object、继承Inheritance、多态Polymorphism和封装Encapsulation。
1.1 类和对象
类Class类是一个模板用于定义对象的属性和行为。对象Object对象是类的实例通过类创建。
1.2 继承
继承是一种机制允许一个类子类继承另一个类父类的属性和方法。这样可以重用代码减少冗余。
1.3 多态
多态允许不同类的对象以相同的方式调用方法即使这些方法在不同的类中有不同的实现。
1.4 封装
封装是一种将数据和方法绑定在一起并隐藏对象的内部实现细节的机制。
二、Python 中的类和对象
2.1 定义类
在 Python 中可以使用 class 关键字定义一个类。
class Person:def __init__(self, name, age):self.name nameself.age agedef greet(self):print(fHello, 我叫 {self.name} 今年 {self.age} 岁)2.2 __init__ 函数解释
由于类可以起到模板的作用因此可以在创建实例的时候把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法(java 中称为构造函数在创建实例的时候就把nameage等属性绑上去注意到__init__方法的第一个参数永远是self表示创建的实例本身因此在__init__方法内部就可以把各种属性绑定到 self因为 self 就指向创建的实例本身。有了__init__方法在创建实例的时候就不能传入空的参数了必须传入与__init__方法匹配的参数但self不需要传Python解释器自己会把实例变量传进去
2.3 创建对象
使用类名调用可以创建对象实例。
user Person(子羽, 30)
user.greet() # 输出: Hello, 我叫 子羽 今年 30 岁三、继承
3.1 基本继承 在 OOP 程序设计中当我们定义一个 class 的时候可以从某个现有的 class 继承新的 class 称为子类Subclass而被继承的 class 称为基类、父类或超类Base class、Super class。 通过继承可以创建一个新的类这个新类继承了父类的属性和方法。 例如当我们的 A 类需要继承 B 类我们可以学成 A(B) 示例代码
class Person:def __init__(self, name, age):self.name nameself.age agedef greet(self):print(fHello, 我叫 {self.name} 今年 {self.age} 岁)class Student(Person):def __init__(self, name, age, student_id):super().__init__(name, age) # 使用 super() 可以获取父类的方法self.student_id student_iddef display(self):print(f学号: {self.student_id})3.2 创建子类对象
student1 Student(张三, 20, S12345)
student1.greet() # 输出: Hello, 我叫 张三 今年 20 岁
student1.display() # 输出: 学号: S12345四、多态
多态允许子类定义与父类同名的方法但是这些方法在不同的类中可以有不同的实现,例如下面的 Teacher 的问候就会跟 Student 的问候不一样
class Teacher(Person):def greet(self):print(fHello, 我是 {self.name} 教授)teacher1 Teacher(李春华, 40)
teacher1.greet() # 输出: Hello, 我是 李春华 教授五、封装
封装是将数据属性和行为方法结合在一起并隐藏内部细节。
class Account:def __init__(self, owner, balance0):self.owner ownerself.__balance balancedef deposit(self, amount):self.__balance amountdef get_balance(self):return self.__balanceaccount Account(约翰)
account.deposit(100)
print(account.get_balance()) # 100六. 访问限制
命名约定
公有属性和方法使用小写字母。私有属性使用双下划线前缀。受保护的属性使用单下划线前缀。
示例代码
class Car:brand 宝马 # 类属性公有属性def __init__(self, color):self.color colorself.__mile 200000 # 私有def get_mile(self): # 公有方法return self.__milecar Car(黄色)
print(car.brand) # 宝马
print(car.color) # 黄色
# print(car.__mile) # Car object has no attribute __mile
print(car.get_mile()) # 200000七、综合实例
class Animal:def __init__(self, name):self.name namedef speak(self):passclass Dog(Animal):def speak(self):return f{self.name} says Woof!class Cat(Animal):def speak(self):return f{self.name} says Meow!animals [Dog(小白), Cat(菊花)]for animal in animals:print(animal.speak())输出
小白 says Woof!
菊花 says Meow!结语
通过本篇文章我们介绍了 Python 中面向对象编程的基本概念和应用。掌握这些知识能够帮助你更好地组织和管理代码提高代码的重用性和可维护性。如果你有任何疑问或想法欢迎在评论区留言讨论。