深度之眼(十三)——Python:类-面向对象的编程(上)

简介: 深度之眼(十三)——Python:类-面向对象的编程(上)

引子——类的引入


可以看我之前写的文章:

嵌入式C++(二)

里面详细讲了类的相关概念


7.1 类的定义


三要素:类名、属性、方法


7.1.1 类的命名


首字母大写

0a2653c851af460fa595bd959398a8f1.png2d65d23f6d4748949b924e4057485923.png


7.1.2 类的属性


> # def _init_(self, 要传递的参数)  舒适化类的属性
class Car():
  """模拟汽车"""
  def _init_(self, brand, model, year):
    """初始化汽车属性"""    #相当于类内部的变量
    self.brand = brand   #汽车的品牌
    self.model = model   #汽车的型号
    self.year = year     #汽车的出厂年份
    self.mileage = 0     #新车总里程初始化为0


7.1.3 类的方法


# 相当于类内部定义的函数

2e9b90b2ca334476abebe75bafe6eeaa.png


7.2 创建实例


7.2.1 实例的创建


将实例赋值给对象,实例化过程中,传入相应的参数

V=类名(必要的初始化参数)

my_new_car = Car("Audi", "A6", 2018)


7.2.2 访问属性


类名.属性名

print(my_new_car.brand)
print(my_new_car.model)
print(my_new_car.year)


7.2.3 调用方法


class Car():
    """模拟汽车"""
    def __init__(self, brand, model, year):
        """初始化汽车属性"""    #相当于类内部的变量
        self.brand = brand      #汽车的品牌
        self.model = model      #汽车的型号
        self.year = year        #汽车的出厂年份
        self.mileage = 0        #新车总里程初始化为0
    def get_main_information(self):
        print("品牌:{}  型号: {} 出厂年份: {}".format(self.brand, self.model, self.year))
    def get_mileage(self):
        return "汽车总里程:{}公里".format(self.mileage)

4cebaac233b3433da32a72337a77fc60.png


7.2.4 修改属性


1、直接修改


0a2653c851af460fa595bd959398a8f1.png


2.通过方法修改属性


class Car():
    """模拟汽车"""
    def __init__(self, brand, model, year):
        """初始化汽车属性"""    #相当于类内部的变量
        self.brand = brand      #汽车的品牌
        self.model = model      #汽车的型号
        self.year = year        #汽车的出厂年份
        self.mileage = 0        #新车总里程初始化为0
    def get_main_information(self):
        print("品牌:{}  型号: {} 出厂年份: {}".format(self.brand, self.model, self.year))
    def get_mileage(self):
        return "汽车总里程:{}公里".format(self.mileage)
    def set_mileage(self, distance):
        self.mileage = distance
my_old_car = Car("BBB","铃翎",2000)
print(my_old_car.get_mileage())
my_old_car.set_mileage(8000)
print(my_old_car.get_mileage())

2d65d23f6d4748949b924e4057485923.png


3. 继续扩展


  • 禁止设置负里程
  • 将每次的里程数累加
class Car():
    """模拟汽车"""
    def __init__(self, brand, model, year):
        """初始化汽车属性"""    #相当于类内部的变量
        self.brand = brand      #汽车的品牌
        self.model = model      #汽车的型号
        self.year = year        #汽车的出厂年份
        self.mileage = 0        #新车总里程初始化为0
    def get_main_information(self):
        print("品牌:{}  型号: {} 出厂年份: {}".format(self.brand, self.model, self.year))
    def get_mileage(self):
        return "汽车总里程:{}公里".format(self.mileage)
    def set_mileage(self, distance):
        if distance > 0:
            self.mileage = distance
        else:
            print("里程数不能为负!")
    def increment_mileage(self, distance):
        if distance > 0:
            self.mileage += distance
        else:
            print("新增里程数不能为负!")

2e9b90b2ca334476abebe75bafe6eeaa.png


7.3 类的继承


4cebaac233b3433da32a72337a77fc60.png6de278e6d6694ce5bb08e7e842b7e74b.png


7.3.1 简单的继承


父类


class Car():
    """模拟汽车"""
    def __init__(self, brand, model, year):
        """初始化汽车属性"""    #相当于类内部的变量
        self.brand = brand      #汽车的品牌
        self.model = model      #汽车的型号
        self.year = year        #汽车的出厂年份
        self.mileage = 0        #新车总里程初始化为0
    def get_main_information(self):
        print("品牌:{}  型号: {} 出厂年份: {}".format(self.brand, self.model, self.year))
    def get_mileage(self):
        return "汽车总里程:{}公里".format(self.mileage)
    def set_mileage(self, distance):
        if distance > 0:
            self.mileage = distance
        else:
            print("里程数不能为负!")
    def increment_mileage(self, distance):
        if distance > 0:
            self.mileage += distance
        else:
            print("新增里程数不能为负!")
相关文章
|
14天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
13天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
1天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
95 80
|
13天前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
38 10
|
14天前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
15天前
|
关系型数据库 开发者 Python
Python编程中的面向对象设计原则####
在本文中,我们将探讨Python编程中的面向对象设计原则。面向对象编程(OOP)是一种通过使用“对象”和“类”的概念来组织代码的方法。我们将介绍SOLID原则,包括单一职责原则、开放/封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则有助于提高代码的可读性、可维护性和可扩展性。 ####
|
13天前
|
人工智能 数据挖掘 开发者
探索Python编程之美:从基础到进阶
本文是一篇深入浅出的Python编程指南,旨在帮助初学者理解Python编程的核心概念,并引导他们逐步掌握更高级的技术。文章不仅涵盖了Python的基础语法,还深入探讨了面向对象编程、函数式编程等高级主题。通过丰富的代码示例和实践项目,读者将能够巩固所学知识,提升编程技能。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考和启示。让我们一起踏上Python编程的美妙旅程吧!
|
7月前
|
Java 程序员 Python
python学习13-面向对象的三大特征、特殊方法和特殊属性、类的浅拷贝和深拷贝
python学习13-面向对象的三大特征、特殊方法和特殊属性、类的浅拷贝和深拷贝
29.从入门到精通:Python3 面向对象继承 多继承 方法重写 类属性与方法
29.从入门到精通:Python3 面向对象继承 多继承 方法重写 类属性与方法
28.从入门到精通:Python3 面向对象 面向对象技术简介 类定义 类对象 类的方法
28.从入门到精通:Python3 面向对象 面向对象技术简介 类定义 类对象 类的方法