71 为对象定义类

news2024/9/25 1:17:12

① 类定义对象的特征和行为。
② 一个 Python 类使用变量存储数据域,定义方法来完成动作。类就是一份契约(有时也称之为模板或蓝本),它定义对象的数据域和方法。
③ 对象是类的一个实例,可以创建一个类的多个对象。创建类的一个实例的过程被称为实例化。术语对象和实例经常是可换的。对象就是实例,而实例就是对象。

1 定义类

除了使用变量存储数据域和定义方法,一个类还提供了一种特殊的方法:__init__()。这个方法被称为初始化程序,它是在创建和初始化这个新对象时被调用的。初始化程序能完成任何动作,但初始化程序被设计为完成初始化动作。

import math


class Circle:
    # Construct a circle object
    def __init__(self, r=1):
        self.r = r

    def getPerimeter(self):
        return 2 * self.r * math.pi

    def getArea(self):
        return self.r ** 2 * math.pi

    def setRadius(self, r):
        self.r = r


circle = Circle()  # 实例化对象
print(circle.getPerimeter())
print(circle.getArea())
circle.setRadius(10)
print(circle.getPerimeter())
print(circle.getArea())

在这里插入图片描述

2 构造对象

一旦定义了一个类,就可以使用构造方法由类来创建对象。构造方法完成两个任务:
① 在内存中为类创建一个对象。
② 调用类的 __init__() 方法来初始化对象。

包括初始化程序的所有方法,都有第一个参数 self。这个参数指向调用方法的对象。__init__() 方法中的 self 参数被自动地设置为引用刚被创建的对象。可以为这个参数指定任何一个名字,但是按照规则,经常使用的是 self。

构造方法的语法规则是:
类名(参数名)

在这里插入图片描述

构建一个对象是在内存中创建对象并调用它的初始化程序。在对象被建立之后, self 可以被用来指向对象。

3 访问对象成员

对象成员是指它的数据域和方法。数据域也被称为实例变量,因为每个对象(实例)的数据域中都有一个特定值。方法也被称为实例方法,因为方法被一个对象(实例)调用来完成对象上的动作。
可以使用圆点运算符(.)访问对象的数据域并调用它的方法,它也被称为对象成员访问运算符。

4 self 参数

定义的每个方法的第一个参数就是 self,这个参数被用在方法的实现中,但不是用在方法被调用的时候。

self 是指向对象本身的参数。 可以使用 self 访问在类定义中的对象成员。

一旦一个实例变量被创建,那么它的作用域就是整个类。

在这里插入图片描述

例如,可以使用 self.x 访问实例变量 x,而使用语法 self.m1() 来调用类的对象 self 的实例方法 m1。

self.x 是一个在 __init__() 方法中创建的实例变量。它可以在方法 m2 中被访问。实例变量 self.y 在方法 m1 中被设置为 2,在方法 m2 中被设置为 3。

注意:可以在方法中创建局部变量,局部变量的作用域是在该方法内。 局部变量 z 在方法 m1 中被创建,而它的作用域就是从它创建时起到方法 m1 结束。

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

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

相关文章

【Linux】yum软件包管理器(使用、生态、yum源切换)

目录 1.yum-软件包管理器😸1.1yum使用方法1.2什么是yum?😸1.3yum的周边生态1.4yum源切换1.4.1 查看系统本身yum源1.4.2 软件源1.4.3yum源配置 1.yum-软件包管理器 以下操作需要联网的情况下进行 😸1.1yum使用方法 安装软件时由于需…

蜜罐——HFish使用

蜜罐——HFish的使用 一、蜜罐简介 1.1 蜜罐技术 蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的…

分类预测|基于灰狼优化最小二乘支持向量机结合Adaboost集成的数据分类预测Matlab程序GWO-LSSVM-Adaboost

分类预测|基于灰狼优化最小二乘支持向量机结合Adaboost集成的数据分类预测Matlab程序GWO-LSSVM-Adaboost 文章目录 前言分类预测|基于灰狼优化最小二乘支持向量机结合Adaboost集成的数据分类预测Matlab程序GWO-LSSVM-Adaboost 一、GWO-LSSVM-Adaboost模型1. Grey Wolf Optimize…

c++基本数据类型变量的最大值,最小值和内存空间

基本数据类型有哪些? 在C中,基本数据类型主要包括以下几种: 整型 (Integral Types): int:通常为32位,有 signed 和 unsigned 两种版本,如 int, unsigned int.short 或 signed short / unsigned …

sqlserver怎么做全文搜索

在SQL Server Management Studio中管理界面,创建表全文索引, 选中表,右键–>全文检索–>定义全文检索—>SQLServer全文检索向导 ,然后按提示下一步,创建要创建索引的列,就是搜索数据列 创建完了使…

抗噪声最大最小值筛选

问题 在如下图所示包含一些噪声的数据队列中如何可以把绿色的(有一个点图片上忘记标了)几个主观认为的最大值最小值筛选出来 思路 简述:定义一个噪声阈值,如果当前比上一次超过噪声阈值才进行更新,如果当前比上一次的…

双11订单实时大屏 - Flink实战洞见

每年的双11购物狂欢节不仅是消费者的狂欢,更是技术人员展示实力的舞台。在这个全民关注的时刻,如何实现实时、准确、鲜活的订单数据展示,成为了各大电商平台技术竞技的焦点。本文将深入探讨如何利用Apache Flink构建一个面向双11的订单实时大…

软件设计原则 KISS、YAGNI、DRY

软件设计原则 KISS、YAGNI、DRY flyfish 设计模式、设计原则与编程惯用法综述 图片来源SpaceX 简约至极的猛禽3(Raptor 3)火箭发动机 一、KISS (Keep It Simple, Stupid!, 保持简单) KISS原则,即“Keep it simple, stupid!”(保持简单,傻…

鸿蒙(API 12 Beta3版)【AVCodec Kit简介】 音视频编码服务

AVCodec kit(Audio & Video Codec Kit,音视频编解码,封装解封装原子能力)是媒体系统中的音视频的编解码、媒体文件的解析、封装、媒体数据输入等原子能力。 能力范围 媒体数据输入:媒体应用可以传入文件fd、或者…

力扣面试150 反转链表 II 三指针

Problem: 92. 反转链表 II 👨‍🏫 参考题解 特殊情况 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val…

【区块链+医疗健康】健康管理平台 | FISCO BCOS应用案例

如今,医疗数据的共通共享依然存在一些难点: 1. 数据碎片化,分散在各个机构和公司,难以整合和共享。 2. 数据不完整,缺乏全面的患者信息,导致决策质量下降。数据的可扩展性不足,难以长期跟踪患…

“Mutation Observer:让DOM变化尽在掌握

Mutation Observer(变动观察者) 定义 Mutation Observer是一种JavaScript API,用于异步监测DOM树的变动,包括元素的添加、删除、属性变化等。当DOM发生变动时,它可以触发回调函数,允许你对变动作出响应。 …

Ubuntu14.04安装网卡驱动

1,lspci 查看网卡型号 2,到官网下载解压,进入文件目录 3,新装的服务器会报错,提示我们没有安装make,下载缺少的gcc和make依赖,记得先执执行一下系统更新 sudo apt update && sudo apt upgrade -y sudo apt …

【css】使用CSS绘制奥运五环--巴黎奥运

使用CSS绘制奥运五环 在2024年巴黎奥运会期间,本文来使用 CSS 来画一个奥运五环。奥运五环由五个相互交叠的圆环组成,分别代表五大洲。 奥运五环是相互连接的,因此在视觉上会产生重叠效果,这也是实现五环最有挑战性的部分 HTML结…

Linux -软件包管理 下载与安装方式

1. wget下载 先下载再安装 wget命令是Linux系统用于从Web下载文件的命令行工具,支持 HTTP、HTTPS及FTP协议下载文件 当然现在更多支持用yum工具的,不过有的时候一些镜像站点不再维护一些旧版本的软件时,这时候就可以用wget可以先获取&…

Unity补完计划 之 SpriteEditer Multiple

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正 1. SpriteEditer Multiple Automatic slicing - Unity 手册 这是用于裁剪图集的模式 应用之后精灵编辑器会看到Slice亮…

CSP-J 复赛 模拟题7 and 解析

1.超级素数: 题目描述 素数,又称质数,是指除 11 和其自身之外,没有其他约数的正整数。例如 2,3,5,132,3,5,13 都是素数,而 4,9,12,184,9,12,18 则不是。特别地,规定 11 不是素数(因此自然数的…

【C++进阶学习】第十二弹——C++ 异常处理:深入解析与实践应用

前言: 在C编程语言中,异常处理是一种重要的机制,它允许程序员在运行时捕获和处理错误或异常情况。本文将详细介绍C异常处理的相关知识点,包括异常的定义、抛出与捕获、异常处理的原则、以及在实际编程中的应用。 目录 1. 异常处理…

算法力扣刷题记录 六十九【动态规划基础及509. 斐波那契数】

前言 调整一下做题顺序,多个章节同步进行,穿插练习。可以在各章节的专栏中找同一类。 记录 六十九【动态规划基础】。 一、动态规划理论基础学习 参考学习链接 二、509. 斐波那契数 2.1 题目阅读 斐波那契数 (通常用 F(n) 表示&#x…

屏蔽浏览器搜索出csdn相关内容的方法

屏蔽csdn搜索结果的方法 前言 鉴于你对知识质量的渴望,以及对挖掘知识金子的欲求,你一定想在浏览器结果中去除有关Csdn的全部内容😈**(确信)**,但是当你在用bing或者google搜索有没有可以屏蔽CSDN搜索结果的方法时,通…