深度之眼(十三)——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("新增里程数不能为负!")
相关文章
|
1天前
|
Python
Python面向对象(2)
【10月更文挑战第14天】
Python面向对象(2)
|
2天前
|
设计模式 程序员 C语言
Python面向对象
【10月更文挑战第13天】
Python面向对象
|
3天前
|
设计模式 开发者 Python
Python编程中的设计模式:从入门到精通####
【10月更文挑战第14天】 本文旨在为Python开发者提供一个关于设计模式的全面指南,通过深入浅出的方式解析常见的设计模式,帮助读者在实际项目中灵活运用这些模式以提升代码质量和可维护性。文章首先概述了设计模式的基本概念和重要性,接着逐一介绍了几种常用的设计模式,并通过具体的Python代码示例展示了它们的实际应用。无论您是Python初学者还是经验丰富的开发者,都能从本文中获得有价值的见解和实用的技巧。 ####
|
6天前
|
索引 Python
python-类属性操作
【10月更文挑战第11天】 python类属性操作列举
11 1
|
7天前
|
Java C++ Python
Python基础---类
【10月更文挑战第10天】Python类的定义
13 2
|
8天前
|
数据采集 开发框架 数据处理
探索Python的灵活性:简化日常编程任务
【10月更文挑战第7天】 【10月更文挑战第9天】 在本文中,我们将深入探讨Python编程语言的强大功能和灵活性。通过具体的代码示例,我们会展示如何利用Python简化日常编程任务,提高效率。无论是数据处理、自动化脚本还是Web开发,Python都能提供简洁而强大的解决方案。我们还将讨论一些最佳实践,帮助你编写更清晰、更高效的代码。
10 1
|
2天前
|
设计模式 存储 数据库连接
Python编程中的设计模式之美:单例模式的妙用与实现###
本文将深入浅出地探讨Python编程中的一种重要设计模式——单例模式。通过生动的比喻、清晰的逻辑和实用的代码示例,让读者轻松理解单例模式的核心概念、应用场景及如何在Python中高效实现。无论是初学者还是有经验的开发者,都能从中获得启发,提升对设计模式的理解和应用能力。 ###
|
9天前
|
存储 开发者 Python
Python编程入门:构建你的第一个程序
【10月更文挑战第8天】本文旨在为初学者提供一个简单的Python编程入门指南。我们将从安装Python环境开始,逐步介绍如何编写、运行和理解一个简单的Python程序。文章将通过一个实际的代码示例来展示Python的基本语法和结构,帮助读者快速上手Python编程。
|
9天前
|
存储 程序员 Python
Python编程入门:探索变量和数据类型
【10月更文挑战第8天】本文是针对初学者的Python编程入门指南,重点介绍Python中变量的定义和使用以及不同的数据类型。我们将通过实例来理解基本概念,并展示如何在Python程序中应用这些知识。文章旨在帮助初学者建立扎实的基础,使他们能够更自信地编写Python代码。
|
10月前
|
Python
跟我从0学Python——类的继承和多态
类的继承和多态 —— 面向对象编程的扩展与灵活性