python基本运用:类的介绍和使用

一、介绍类

类(class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例

实例化:创建一个类的实例,类的具体对象。

对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法
1、方法:类中定义的函数
2、类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
3、实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。

继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写

二、定义类

(1)class 关键字 声明一个类

(2)class 类定义方法

第一种:class 类名(object): 新式类

第二种:class 类名():

第三种:class 类名

(3)案例

class Lei(object):
a=20 #类变量
def init(self,a,b): #构造函数,初始化作用
self.a=a #实例变量
self.b=b #实例变量
def fs1(self): #方法1
print(self.a+1) #
def fs(self): #方法2
print(self.b+2)
if name == 'main':
dx=Lei(1,2) # 创建类的而对象 ,1,2就是一个实例
dx.fs1() #通过类的对象.调用方法1
dx.fs() ##通过类的对象.调用方法2
print(dx.a) #通过对象调实例变量
print(dx.b) #通过对象调实例变量
print(Lei.a) ##通过类名调类变量

(4)__init__初始化文件构造函数

1、定义类的时候__init__是一个构造函数,该函数是两个下划线开头和两个下划线结束,其作用就是当创建类的对象和实例时系统会自动调用构造函数,通过构造函数对类进行初始化操作

2、定义类的时候__init__方法中有一个参数self,这也是类中的方法与普通函数的区别,类的中的方法必须有一个参数self,而且位于参数列表的开头,在类中self就是代表类的当前类的实例(对象)自身,在python调用时无需传值,python会将对象自动传给self接受

三、类中的类变量、实例变量

1、类变量在类的下方,构造函数的上方

2、实例变量在构造函数的下方 self.开头

四.实例方法,类方法,静态方法

调用实例方法
1、实例方法
class Lei(object):
def init(self,a,b): #构造函数,初始化作用
self.a=a #实例变量
self.b=b #实例变量
def fs1(self): #实例方法1
print(self.a+1)
def fs(self): #实例方法2
print(self.b+2)
if name == 'main':
dx=Lei(1,2)
dx.fs1()
dx.fs()

class People(object):
def init(self,name):
self.name = name#实例变量
def play(self): #实例方法
print(self.name + '打篮球')
if name == 'main':
p = People('xiaowang')#创建对象
p.play()#对象调用实例方法
 


调用类方法
2、类方法
格式:@classmethod
def 函数名(cls):
print(类方法)
举例:
class People(object):
def init(self,name):
self.name = name #实例变量
@classmethod # 类方法,也叫动态方法
def play(cls): # cls 函数修饰,类方法
print("打篮球")
if name == 'main':
p = People('xiaowang') #创建对象
p.play() #类调用类方法
People.play() #对象调用类方法

3、静态方法
格式:@staticmethod
def 函数名():
print(静态方法)
举例:
class People(object): #自定义类
def init(self,name): #初始化数据
self.name=name
@staticmethod #静态方法
def play():
print("静态方法:打篮球")
p=People("xiaowang") #创建对象
p.play() #对象调用静态对象
People.play() #类调用静态对象

总结

class Lei(object):

a=20  #类变量def __init__(self,a,b):  #构造函数,初始化作用self.a=a #实例变量self.b=b #实例变量def fs1(self): #方法1print(self.a+1) #def  fs(self): #方法2print(self.b+2)@classmethod #类方法,也叫动态方法def l(cls): #cls 函数修饰print(cls.a)@staticmethod  #私有方法,也叫静态方法def  dy():print("dy")

if name == 'main':

dx=Lei(1,2)   # 创建类的而对象   ,1,2就是一个实例dx.fs1() #通过类的对象.调用方法1dx.fs()  ##通过类的对象.调用方法2print(dx.a) #通过对象调实例变量print(dx.b) #通过对象调实例变量print(Lei.a) ##通过类名调类变量dx.l()dx.dy()

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

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

相关文章

Elasticsearch:使用 ColPali 进行复杂文档搜索 - 第 1 部分 - 8.18

作者:来自 Elastic Peter Straer 及 Benjamin Trent 这篇文章介绍了 ColPali 模型,这是一种 late-interaction 模型,可简化包含图片和表格的复杂文档搜索过程,并讨论了其在 Elasticsearch 中的实现。 在构建搜索应用时&#xff0c…

2025-03-19 学习记录--C/C++-C 库函数 - qsort() 实现快速排序

C 库函数 - qsort() 实现快速排序 ⭐️ C 标准库 - <stdlib.h> &#xff08;一&#xff09;、命名介绍 &#x1f36d; qsort 是 C 标准库&#xff08;stdlib.h&#xff09;中提供的一个快速排序函数&#xff0c;用于对数组进行排序。❀它的名字来源于 “Quick Sort”&…

04 泛型编程

1、概论 编程范式&#xff1a;面向过程编程、面向对象编程、泛型编程。 泛型编程&#xff1a;目的是编写能够适合多种数据类型的代码&#xff0c;而不是为每种特定的数据类型编写重复的代码。 模板是实现泛型的主要工具&#xff0c;主要分为函数模板和类模板。 函数模板&am…

【MySQL】架构

MySQL架构 和其它数据库相比&#xff0c;MySQL有点与众不同&#xff0c;它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上&#xff0c;插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实…

(保姆级教程)CAN总线—如何使用CANoe(VN1640)的Scaner功能测量样件的波特率

1、如何找到测试入口 &#xff08;步骤1&#xff09;前置条件 连接好被测样件和VN1640&#xff0c;连接电源。 &#xff08;2&#xff09;打开CANoe工程&#xff0c;依次点击Hardware--》NetworkHardware&#xff0c;如下图&#xff1a; &#xff08;3&#xff09;单击Netwo…

使用 PIC 微控制器和 Adafruit IO 的基于 IoT 的 Web 控制家庭自动化

使用 PIC 微控制器和 Adafruit IO 的基于 IoT 的 Web 控制家庭自动化 家庭自动化一直是我们大多数人的灵感来源。从我们舒适的椅子或任何房间的床上切换交流负载,而无需伸手去触碰另一个房间的开关,听起来很酷,不是吗!.现在,在物联网时代,多亏了 ESP8266 模块,它使从世界…

MySQL原理:逻辑架构

目的&#xff1a;了解 SQL执行流程 以及 MySQL 内部架构&#xff0c;每个零件具体负责做什么 理解整体架构分别有什么模块每个模块具体做什么 目录 1 服务器处理客户端请求 1.1 MySQL 服务器端逻辑架构说明 2 Connectors 3 第一层&#xff1a;连接层 3.1 数据库连接池(Conn…

Excel Script Lab学习笔记

注意 The Excel JavaScript API 没有“Cell”对象或类。 相反&#xff0c;Excel JavaScript API 将所有 Excel 单元格定义为 Range 对象。 Excel UI 中的单个单元格转换为 Excel JavaScript API 中包含一个单元格的 Range 对象。 单个 Range 对象也可以包含多个连续的单元格。…

【第14节】windows sdk编程:进程与线程介绍

目录 一、进程与线程概述 1.1 进程查看 1.2 何为进程 1.3 进程的创建 1.4 进程创建实例 1.5 线程查看 1.6 何为线程 1.7 线程的创建 1.8 线程函数 1.9 线程实例 二、内核对象 2.1 何为内核对象 2.2 内核对象的公共特点 2.3 内核对象句柄 2.4 内核对象的跨进程访…

数据结构中的引用管理对象体系

数据结构中的引用管理对象体系 &#xff08;注&#xff1a;似复刻变量即实例对象&#xff09; 引用管理对象的&#xff0c;有引用就能管理到它所指向的对象&#xff0c;我们拿引用最终的目的就是管理那些我们需要管理的最终直接对象&#xff0c;引用也是对象&#xff0c;同时…

Java 异常处理

一、引言 在 Java 编程中,异常处理是一个至关重要的部分。程序在运行过程中可能会遇到各种意外情况,如文件不存在、网络连接中断、数组越界等。如果不进行适当的处理,这些异常可能会导致程序崩溃,影响用户体验。Java 提供了一套完善的异常处理机制,允许开发者捕获和处理这…

数据驱动进化:AI Agent如何重构手机交互范式?

如果说AIGC拉开了内容生成的序幕&#xff0c;那么AI Agent则标志着AI从“工具”向“助手”的跨越式进化。它不再是简单的问答机器&#xff0c;而是一个能够感知环境、规划任务并自主执行的智能体&#xff0c;更像是虚拟世界中的“全能员工”。 正如行业所热议的&#xff1a;“大…

skywalking微服务链路追踪

是什么&#xff1f; skywalking是一个优秀的国产开源框架&#xff0c;2015年由个人吴晟&#xff08;华为开发者&#xff09;开源 &#xff0c; 分布式链路追踪就是将一次分布式请求还原成调用链路&#xff0c;将一次分布式请求的调用情况集中展示&#xff0c;比如各个服务节点…

DR-CAN 卡尔曼滤波笔记

Kalman Filter&#xff08;卡尔曼滤波&#xff09; Optimal(最优化) Recursive(递归) Data Processing(数据处理) Algorithm(算法) 1 递归算法_Recursive Alorithm 1.1 公式推演 1.2 案例 1.3编程实现 % 设置迭代次数 n 5000000;% 生成测量值序列 % rand(n 1, 1) 生成一个…

HyperAD:学习弱监督音视频暴力检测在双曲空间中的方法

文章目录 速览摘要1. 引言2. 相关工作弱监督暴力检测双曲空间中的神经网络 3. 预备知识双曲几何切空间&#xff08;Tangent Space&#xff09;指数映射与对数映射&#xff08;Exponential and Logarithmic Maps&#xff09;3.1 双曲图卷积网络&#xff08;Hyperbolic Graph Con…

Freeze-Omni:冻结 LLM,实现语音对话

写在前面:语音LLM 大型语言模型(LLM)的强大能力,为构建智能语音对话系统提供了无限可能。然而,将 LLM 与语音模态结合,并非易事。直接微调 LLM,容易导致灾难性遗忘,丧失其原有的知识和能力;而训练数据不足,又难以充分发挥 LLM 的潜力。 如何才能在保留 LLM 强大能力…

践行健康养生,拥抱美好人生

在当今快节奏的社会浪潮中&#xff0c;人们在忙碌奔波时&#xff0c;健康常被抛诸脑后。可一旦身体亮起红灯&#xff0c;才惊觉健康无价。其实&#xff0c;只要巧妙运用养生之道&#xff0c;就能轻松守护健康&#xff0c;让生活重回正轨。 养生始于饮食。我们要巧妙搭配食物&am…

上海亚商投顾:沪指窄幅震荡 深海科技概念持续活跃

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场全天窄幅震荡&#xff0c;三大指数涨跌互现。深海科技概念持续活跃&#xff0c;巨力索具、东方海洋、海洋…

Java 大视界 -- Java 大数据在智能体育赛事直播数据分析与观众互动优化中的应用(142)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

基于Spring Boot的图书管理系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…