【深度学习】 Python 和 NumPy 系列教程(八):Python类

目录

一、前言

二、实验环境

三、Python类(Class)

1、初始化方法(__init__)

2、属性和实例变量

3、方法和实例方法

4、继承

5、多态

6、类变量和静态方法

7、魔术方法


一、前言

        Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。

        Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:

  • Python:基本数据类型、容器(列表、元组、集合、字典)、函数、类
  • Numpy:数组、数组索引、数据类型、数组数学、广播
  • Matplotlib:绘图,子图,图像
  • IPython:创建笔记本,典型工作流程

二、实验环境

        Python 3.7

        运行下述命令检查Python版本

 python --version 

三、Python类(Class)

1、初始化方法(__init__

class Person:def __init__(self, name, age):self.name = nameself.age = ageperson = Person("Alice", 25)
print(person.name)  # 输出: Alice
print(person.age)  # 输出: 25

        __init__方法用于初始化Person类的对象。通过self.name = nameself.age = age语句,将传递给构造函数的参数赋值给对象的属性。

2、属性和实例变量

class Circle:def __init__(self, radius):self.radius = radiuscircle = Circle(5)
print(circle.radius)  # 输出: 5

        Circle类具有一个属性radius,并且在初始化方法中使用传递的参数对其进行赋值。通过circle.radius可以访问对象的属性。

3、方法和实例方法

class Dog:def __init__(self, name):self.name = namedef bark(self):print(f"{self.name} is barking!")dog = Dog("Buddy")
dog.bark()  # 输出: Buddy is barking!

        Dog类具有一个方法bark,通过self.name访问对象的属性,并输出相应的信息。

4、继承

class Animal:def __init__(self, name):self.name = namedef eat(self):print(f"{self.name} is eating.")class Dog(Animal):def bark(self):print("Woof!")dog = Dog("Buddy")
dog.eat()  # 输出: Buddy is eating.
dog.bark()  # 输出: Woof!

        Dog类继承自Animal类,并且可以使用Animal类中定义的方法和属性。子类可以添加新的方法,如bark

5、多态

class Animal:def __init__(self, name):self.name = namedef make_sound(self):passclass Dog(Animal):def make_sound(self):print("Woof!")class Cat(Animal):def make_sound(self):print("Meow!")animals = [Dog("Buddy"), Cat("Whiskers")]for animal in animals:animal.make_sound()

        Animal类具有一个make_sound方法,但是在子类中具有不同的实现方式。通过遍历animals列表,可以调用不同类的make_sound方法实现多态。

6、类变量和静态方法

class Circle:pi = 3.14159def __init__(self, radius):self.radius = radius@staticmethoddef calculate_area(radius):return Circle.pi * radius ** 2circle = Circle(5)
print(circle.calculate_area(5))  # 输出: 78.53975
print(Circle.calculate_area(5))  # 输出: 78.53975

       pi是一个类变量,被所有实例共享。calculate_area是一个静态方法,可以通过类名或实例来调用。

7、魔术方法

class Person:def __init__(self, name):self.name = namedef __str__(self):return f"Person: {self.name}"person = Person("Alice")
print(person)  # 输出: Person: Alice

        __str__是一个魔术方法,用于返回对象的字符串表示。通过在类中定义__str__方法,可以自定义对象的字符串输出形式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/76344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片码二次渲染绕过

目录 一、环境 1、代码 2、文件处理方式 3、图片码的制作 二、绕过图片重构 1、可行性分析 2、数据比对 3、完成绕过 一、环境 以upload-labs靶场第十七关为例 1、代码 源码为&#xff1a; <?php include ../config.php; include ../head.php; include ../menu.…

Docker安装部署Nexus3作为内网镜像代理缓存容器镜像

Docker安装部署Nexus3作为内网镜像代理 一、背景描述 基础镜像比较小&#xff0c;仓库使用阿里云或者腾讯云拉取速度挺快&#xff0c;但是时光飞逝几年时间过去&#xff0c;再加上AI加持的情况下&#xff0c;有些镜像的大小已经接近20G&#xff01; 这种情况下不管是测试环境…

2024年java面试--mysql(2)

系列文章目录 2024年java面试&#xff08;一&#xff09;–spring篇2024年java面试&#xff08;二&#xff09;–spring篇2024年java面试&#xff08;三&#xff09;–spring篇2024年java面试&#xff08;四&#xff09;–spring篇2024年java面试–集合篇2024年java面试–redi…

网络传输方式

1. 单播 1.1. 定义 单播是指一种向单个目标地址传送数据的方式&#xff0c;即单独的一对一通讯方式。 1.2. 可使用协议 UDP、TCP等协议 1.3. 常见的场景 发送电子邮件传输文件 2. 广播 2.1. 定义 一种向本地网络中所有设备发送数据的方式。 2.2. 常见的场景 电视和电…

AAOS音频路由 问题分析

文章目录 问题描述问题分析流程梳理问题原因 问题描述 多屏设备&#xff0c;没有按照配置car_audio_configuration.xml配置输出。也即是每个屏幕播放的音频没有对应输出到想对应的bus设备。 问题分析 首先根据hal层的log&#xff0c;确认框架层配置的bus&#xff0c;确认框架…

Swift学习笔记四(function 篇)

目录 1 Function 概念及定义。 1.1 Function概念 1.2 Function定义 1.3 Function参数 1.3.1 无形式参数 1.3.2 多形式参数的函数 1.4 返回值 1.4.1 无返回值类型 1.4.2 多返回值类型 1.4.3 可选元组返回类型 1.4.4 隐式返回的类型 1.4.5 实参标签和形参名 1.4.6 指…

卷积神经网络:深度学习的重要支柱

卷积神经网络&#xff1a;深度学习的重要支柱 卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称CNN&#xff09;是深度学习领域中最著名的算法之一。它是一种特殊的神经网络&#xff0c;尤其适用于处理图像、视频等网格形式的数据。自从1998年Yann LeCun…

功率放大器的定义详解

功率放大器是一种电子放大器&#xff0c;主要用于将输入信号的功率放大到足以驱动负载或输出器件所需的水平。通常&#xff0c;功率放大器会将低电平高电流的输入信号转换成高电平低电流的输出信号&#xff0c;以便给负载提供足够的功率。 功率放大器广泛应用于各种应用场合&am…

Linux工具——gcc

目录 一&#xff0c;gcc简介 二&#xff0c;C语言源文件的编译过程 1.预处理 2.编译 3.汇编 4.链接 5.动静态库 一&#xff0c;gcc简介 相信有不少的小白和我一样在学习Linux之前只听说过visual studio。其实这个gcc这个编译器实现的功能便是和visual studio一样的功能&…

学习 [Spring MVC] 的JSR 303和拦截器,提高开发效率

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《推荐】Spring与Mybatis集成整合》 ⛺️ 生活的理想&#xff0c;不断更新自己 ! 1.JSR303 1.1JSR303是什么 JSR 303是Java规范请求&#xff08;Java Specification Request&#xff09;…

matlab数据处理: cell table array+datetime

原数据文件.csv matlab xlsread(filename{i},B2:T2881) 会同于Excel最多1048576行 舍弃 a{1,i} xlsread(filename{i},‘B2:T2881’);%读取excel文件,选定区域’B2:G2881’ readcell(filename{i},Range,E2:M2881) 会全部读取 优选 对于日期 yyyy-MM-dd HH:mm:ss.000 matlab cel…

在Ubuntu上建立博客网站,利用Cpolar+Inis快速实现专业写作

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总…

设计模式-模板方法

文章目录 前言模板方法模式简介Java代码示例模板方法使用场景模板方法使用场景 前言 当我们需要在一个算法的框架中定义算法的骨架&#xff0c;并将一些步骤的具体实现留给子类来完成时&#xff0c;模板方法模式是一种非常有用的设计模式。这篇博客将介绍模板方法模式的概念&a…

将 ChatGPT 用于数据科学项目的指南

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 我们都知道 ChatGPT 的受欢迎程度以及人们如何使用它来提高生产力。但是&#xff0c;如果您是新手&#xff0c;则值得注册ChatGPT免费演示并尝试它所能做的一切。您还应该参加我们的 ChatGPT 简介课程&#xff0c;学习…

199. 二叉树的右视图

给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4]示例 2: 输入: [1,null,3] 输出: [1,3]示例 3: 输入: [] 输出: []提示: 二…

Mixin从理论到实践

mixin从理论到实践 mixin从理论到实践一、什么是mixin二、使用mixin三、mixin的合并策略四、mixin辨析五、个人实践 mixin从理论到实践 一、什么是mixin mixin混入 — Vue.js (vuejs.org) 官方解释&#xff1a; 混入 (mixin) 提供了一种非常灵活的方式&#xff0c;来分发 Vue …

产品波士顿矩阵

随着公司产品的增多&#xff0c;每个产品的生命周期节点各不相同&#xff0c;很多时候我们往往在产品结构、资源分配方面会产生各种问题&#xff0c;导致需要发展的产品得不到资源&#xff0c;消耗资源的产品却有无法增长&#xff0c;所谓不聚焦导致的问题其实是资源和发展错配…

ESP32蓝牙实例-BLE服务器与客户端通信

BLE服务器与客户端通信 文章目录 BLE服务器与客户端通信1、软件准备2、硬件准备3、代码实现3.1 BLE服务器实现3.2 Android手机测试BLE服务器3.3 ESP32 BLE客户端在本文中,我们将介绍如何使用低功耗蓝牙在两个 ESP32 开发板之间执行 BLE 服务器客户端通信。 换句话说,将介绍如…

Sphinx 找不到 Doxygen 导出的 xml 中的内容的解决方法

Sphinx Breathe Doxygen CMake 的教程看这个就够了 https://devblogs.microsoft.com/cppblog/clear-functional-c-documentation-with-sphinx-breathe-doxygen-cmake/ 但是他还是少写了一些东西&#xff0c;所以还是有一些小坑的 这些坑会导致 Sphinx 找不到 Doxygen 导出…

使用 PHP WorkerMan 构建 WebSocket 全双工群聊通信(二)

在很早很早以前&#xff0c;WebSocket 协议还没有被发明的时候&#xff0c;人们在 Web 端制作类实时数据动态更新时&#xff0c;一般采用轮询、 长连接 (Long Polling) 来实现。大概就是&#xff1a; 轮询&#xff1a;客户端不停发送 HTTP 请求给服务端&#xff0c;服务端返回…