python学习记录10--给自己:类与对象

新手入门python必备文章100篇:语法基础、字符串、集合类型、异常处理、类与对象 在如今这个时间和知识都是碎片化的时代,C站根据C1-C4认证的成长路径,进行知识细化整理,形成系统化的知识图谱。 通过调研一线互联网大厂的招聘JD,小编对标C站能力认证要求,为大家整理了系列技术干货合集,助力小伙伴们顺利进大厂~ 小编根据C4认证的成长路径整理了python的相关资源,从零基础带你进入python的世界,除了语法基础,包含字符串、集合类型、异常处理和类与对象等。让小伙伴们从无到有,从浅入深的系统地学习python。 欢迎大家扫描文末二维码,一起学习~ 一、语法基础(20篇). 阅读详情

从面向过程到面向对象的编程

  • 面向过程编程:

看中的是解决问题的过程,首先分析出解决问题的步骤,然后按照分析出来的步骤进行解决问题,这就是面向过程编程。面向过程编程主要使用到函数知识,将每个步骤的过程封装在一个函数里再依次调用。

  • 面向对象编程:

主要会使用到“类与对象”方面的知识:得先有类才会有对象,类是对象的母版

一、认识类

1.【类】是一个函数包。类中可以放置函数和变量,然后类中的函数可以很方便的使用类中的变量。

2.就像函数用  " def()  " 定义,则类用 " class() " 来定义。

3.在类中我们将定义的函数称作类的 “方法” ,通常用“类名.函数名”的格式来让类中的方法运行起来。

4.在类中我们定义的变量叫做类的 “属性” ,通常用“类名.变量名”的格式将类中的属性值提取出来。

5.不过类中的属性(变量)也不是不能改变,使用类名.变量名的格式,可以让我们在类的外面,增加或修改类的属性:

5.类方法不仅可以调用类属性,还可以直接调用其它类方法(如下所示:)

class 成绩单():
    @classmethod
    def 录入成绩单(cls):
        cls.学生姓名 = input('请输入学生姓名:')
        cls.语文_成绩 = int(input('请输入语文成绩:'))
        cls.数学_成绩 = int(input('请输入数学成绩:'))

    @classmethod
    def 计算平均分(cls):
        平均分 = (cls.语文_成绩 + cls.数学_成绩)/2
        return 平均分

    @classmethod
    def 评级(cls):
        平均分 = cls.计算平均分()
        if 平均分>=90:
            print(cls.学生姓名 + '的评级是:优')
        elif 平均分>= 80 and 平均分<90 :
            print(cls.学生姓名 + '的评级是:良')
        elif 平均分>= 60 and 平均分<80 :
            print(cls.学生姓名 + '的评级是:中')
        else:
            print(cls.学生姓名 + '的评级是:差')

成绩单.录入成绩单()
成绩单.评级()
class aaa():
    b1=100
    b2=200
    @classmethod               #①
    def 函数1(cls):            #②
        print(cls.b1)         #③
        print(cls.b2)

① 第一个格式@classmethod的中文意思就是“类方法”,@classmethod声明了函数1是类方法,这样才能允许函数1使用类属性中的数据。类中的方法在需要调用类中的属性时才需要使用@classmethod

② 第二个格式cls的意思是class的缩写。如果类方法函数1想使用类属性(也就是类中的变量),就要写上cls为函数1的第一个参数,也就是把这个类作为参数传给自己,这样就能被允许使用类中的数据。

③ 第三个格式是cls.变量。类方法想使用类属性的时候,需要在这些变量名称前加上cls.。

二、给类方法传参

1.类方法仅使用外部参数

一首诗 = ['《卜算子》','我住长江头,','君住长江尾。','日日思君不见君,','共饮长江水。']

class 念诗类():
    def 念诗函数(参数):
        for i in 参数:
            print(i)

念诗类.念诗函数(一首诗)

2.类方法仅使用内部参数

class 念诗类():
    一首诗 = ['《卜算子》','我住长江头,','君住长江尾。','日日思君不见君,','共饮长江水。']

    @classmethod
    def 念诗函数(cls):
        for i in cls.一首诗:
            print(i)

念诗类.念诗函数()

3.类同时使用内部参数和外部参数

class 加100类():
    变量 = 100
    
    @classmethod
    def 加100函数(cls,参数):
        总和 = cls.变量 + 参数
        print('加100函数计算结果如下:')
        print(总和)

参数 = int(input('请输入一个整数:'))
加100类.加100函数(参数)

三、增加\修改类的属性

1.从外部增加\修改类属性

class 类():
    @classmethod
    def 打印类属性(cls):
        print(cls.变量)

类.变量 = input('请输入字符串:')     #输入asd
类.打印类属性()                      #输出asd

2.从内部增加\修改类属性

class 类():
    @classmethod
    def 增加类属性(cls):
        cls.变量 = input('请随意输入字符串:')

类.增加类属性()

print('打印新增的类属性:')     #ghk
print(类.变量)                 #ghk

 

class 念诗类():
    一首诗 = ['《卜算子》','我住长江头,','君住长江尾。','日日思君不见君,','共饮长江水。']
    
    @classmethod
    def 念诗函数(cls):
        cls.接收人 = input('请输入你想给谁念诗:')
        print('念给'+ cls.接收人 +'的诗:')
        for i in cls.一首诗:
            print(i)

念诗类.念诗函数()

类的方法直接调用其他方法举例:

①是调用类方法评级,②是在评级内部调用了类方法计算平均分,③④是类方法计算平均分的过程,最后返回的值重新赋值给了评级中的类属性平均分。

这里有个小点要注意,def 评级(cls)中的平均分和def 计算平均分(cls)的平均分,是两个不同的变量,因为它们在不同的函数下工作,作用域不同。

四、类的实例化

1.实例化:从类变成实例对象(类---->(实例化)----->实例对象)

2.“cls代表“类”的意思,self代表“实例”的意思,这样写是编码规范(程序员们的共识),但不是强制要求。”

3."当类支持实例化的时候,self是所有类方法位于首位、默认的特殊参数"

4.”类和实例的关系,就像母体和复制品的关系一样。当一个类实例化为多个实例后,实例将原封不动的获得类属性,也就是实例属性和类属性完全相等。“

5.“重写类方法”分成两个步骤:第一个步骤是在类的外部写一个函数,第二个步骤是把这个新函数的名字赋值给类.原始函数

6."我们可以通过重写类方法,让实例方法发生变化,但我们不能重写实例方法"

class 幸运():
    def 好运翻倍(self):
        print('好的,我把它存了起来,然后翻了888倍还给你:' + str(self.幸运数*888))

def 新函数(self):
    print('我是重写后的新函数!')
    print('好的,我把它存了起来,然后翻了666倍还给你:' + str(self.幸运数*666))

幸运.幸运数 = int(input('你的幸运数是多少?请输入一个整数。'))

幸运.好运翻倍= 新函数
实例 = 幸运()  # 实例化
实例.好运翻倍()

7.实例和属性的方法

①修改类的属性和方法,会影响所有实例的属性和方法

②修改某个实例的属性,只会影响这个实例本身

③不能修改实例的方法

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Python类和对象知识点总结 数据读取上:构建了一个file_define的python代码文件,里面构建了一个抽象类做顶层设计,可以去读文件,TextFileReader子类实现读取文本文件,JsonFileReader实现读取JSON文件,读取到的数据用class record封装,通过类封装相应的数据。参数列表定义必须带self,表示类对象本身的意思,只有通过self成员方法才能访问类的成员变量,self出现在参数列表中但是不占用参数位置。面向对象编程就是使用对象进行编程,即设计类,基于类创建对象,并使用对象来完成具体的工作。 阅读详情

相关推荐

面向对象程序设计(个人学习记录)

自定义数据结构类型的语法结构为:class 类名():pass创建对象的语法格式为:对象名=类名()

weixin_56766801的博客 1907

类的学习

1.两种编程思维 面向过程编程:看重的是解决问题的过程。就像之前的小游戏: 【面向过程】编程主要用到的是“函数”知识,将每个过程步骤打包成函数,再依次调用。前面的小游戏就是这个过程: 【面向对象】编程主要用到的是“类和对象”知识,也就是今天的知识。 【类】是【对象】的母板,得先有了类,我们才能制造各种“对象”。就像我们先有了产品图纸,才能制造各种产品一样。 2. 类是一个函数包 理解【类】最简单的方式:【类】是一个函数包。类中可以放置函数和变量,然后类中的函数可以很方便的使用类中的变量。 2.1 类中可

weixin_39678348的博客 318

实战Nocobase插件开发:如何用yarn pm命令快速创建和测试API接口插件

本文详细介绍了如何使用Nocobase插件开发工具快速创建和测试API接口插件,涵盖从环境配置、插件骨架生成到数据模型定义和接口实现的完整流程。通过yarn pm命令简化开发步骤,帮助开发者高效构建支持CRUD的API插件,适用于低代码平台开发场景。

weixin_29313239的博客 457

Python由放弃到入门,基础篇七(类)下

类的实例化 通过对比可以看到,实例化后再使用的格式,①是空着的,意思是这里不再需要@classmethod的声明,并且在第②处,把cls替换成了self。同时,实例化后再使用的格式,需要先赋值然后再调用(第③处): 实例如下: #!/usr/bin/python3 # 直接使用类 class 成绩单(): @classmethod def 录入成绩单(cls): ...

ff876409866的博客 632

10分钟训练你的AI歌手:RVC WebUI声音克隆保姆级教程

本文提供了一份详细的RVC WebUI声音克隆保姆级教程,指导用户如何在10分钟内利用Retrieval-based-Voice-Conversion技术训练专属AI歌手。教程涵盖从环境配置、数据准备、模型训练到最终推理应用的全流程,即使是新手也能快速上手,实现高质量的声音克隆与歌曲生成。

weixin_29073241的博客 819

清华开源GPGPU“承影Ventus”初体验:用RISC-V RVV指令集跑通第一个OpenCL程序

本文详细介绍了清华大学开源GPGPU“承影Ventus”的开发实践,展示了如何基于RISC-V RVV指令集运行首个OpenCL程序。从环境配置、内核开发到性能优化,全面解析了这一创新架构的开发流程,为开发者提供了在RISC-V生态中进行通用GPU计算的实用指南。

weixin_30415113的博客 490

类与对象—python

类的定义,类和对象,类的5个常用构造方法,类型注解的用法。

my_heart_goon的博客 1141

WEBGL Shader零基础教程(四):片元着色器核心逻辑

本文系统介绍了WebGL渲染管线中片元着色器的核心概念与应用。主要内容包括:1)片元着色器在渲染管线中的定位与作用,作为逐像素处理单元接收插值数据并计算最终颜色;2)输入数据类型与使用规则,重点讲解varying变量和uniform变量的应用场景;3)颜色计算的核心逻辑,涵盖基础色、渐变、纹理采样和颜色混合;4)进阶特效实现与性能优化技巧,包括交互效果、内置函数组合和GPU计算优化;5)通过综合案例演示了纹理、波纹与交互效果的整合实现。文章提供了完整的代码示例和调试建议,为后续学习光照模型、后期处理等高级渲

分享知识,拥抱变化 1374

python中的类与对象

一个基本的类定义包括关键字class,后面跟着类名和冒号。在其下方缩进的代码块中,可以定义属性(变量)和方法(函数)。要使用一个类,你需要根据该类创建对象。每个对象都会有自己独立的属性集合。def __init__(self, value): # 特殊方法__init__用于初始化对象,构造器# 实例化对象print(obj)# 直接修改对象的属性print(obj)

瑞瑞的博客 1663

利用正射影像对斜射图像进行反向投影

因此,RANSAC算法可以通过计算inliners和outliers的数量来评估估计关键点的质量,确保与其他点不一致的点不会在Homography矩阵中被估计。然后,它通过考虑关键点周围区域中图像的梯度大小和方向来计算每个提取的关键点的方向。由于单应性矩阵的计算可能会受到两个图像中异常值的存在的影响,这将导致矩阵的不正确估计并导致沿图像的对准和映射不良。FLANN匹配器的方法基于K近邻搜索的概念,即从图像中找到k个近邻。找到相机在正射影像坐标系中的位置并在正射影像上绘制重叠区域的边界框。

gis收藏家的博客 1512

从零开始做对容量规划:一文讲透 SAP Greenfield sizing 与 Quick Sizer 落地方法

摘要 SAP项目早期硬件规划面临业务细节缺失的挑战,Greenfield sizing方法通过Quick Sizer工具将业务需求转化为硬件资源需求。该方法聚焦主要负载驱动因素而非精确预测,采用标准化问卷形式输入并发用户数、业务处理量等参数,输出内存、CPU等资源需求。关键步骤包括选择正确的Quick Sizer版本、创建sizing项目、参考SAP基准测试和认证目录校准结果,最终将需求交由硬件厂商落地。该方法特别适用于缺乏历史数据的新系统部署,帮助在不确定性中建立可控的容量规划模型,避免资源浪费或性能不足

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 216

Python学习记录(十四):面向对象编程

​ 面向过程程序设计:核心是过程,先干什么再干什么。如同一条流水线,是一种机械式的思维方式。​ 面向对象程序设计:一切皆为对象,类似于上帝创造世界。对象是特征与动作的结合体,解决了程序的扩展性。

qq_45780762的博客 1980

Android 14安装的APK默认允许运行时权限

本文介绍了在Android系统中实现安装应用后自动授予运行时权限的方法。通过在安装完成广播中检测应用安装状态,调用新增的DefaultPermissionGrantPolicy.grantAppRuntimePermissions()函数来授予常规权限,并使用allowSpecialPermission()处理特殊权限(如安装未知应用和悬浮窗权限)。文章详细说明了如何修改DefaultPermissionGrantPolicy类,添加grantAppRuntimePermissions和grantRunti

热衷于Android Framework和系统APP的修改经验分享 683

python中的class Solution(object):的含义与类继承与类、对象概念的详解

python中的class Solution(object):的含义与类继承与类、对象概念的详解

m0_56738500的博客 1万+

【Matlab】刃边法计算mtf

摘要:刃边法是一种测量光学系统调制传输函数(MTF)的常用方法。本文介绍了基于Matlab的MTF计算实现方案,包括图像灰度化、梯度计算、刀口方向选择、梯度投影等关键步骤,并给出了完整的代码实现。该方案可通过添加图像预处理、多方向计算、函数封装等方式进行扩展,提高MTF计算的准确性和实用性,适用于不同应用场景的光学系统性能评估需求。(148字)

unber的博客 389

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Python面向对象编程】类与对象的深度探索指南

本文通过12个实战案例,系统讲解Python类的核心概念与高级应用,涵盖封装、继承、多态、装饰器等知识点,帮助初学者快速掌握面向对象编程精髓。

赶紧的博客 1420

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Python的类与对象、构造方法、类与对象三大特性封装、继承和多态、类型注解

生活中或是程序中,我们都可以使用设计表格、生产表格、填写表格的形式组织数据进行对比,在程序中:设计表格,称之为:设计类(class)打印表格,称之为:创建对象填写表格,称之为:对象属性赋值。

Williamtym的博客 4015

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python面向对象编程入门:从类与对象到方法与属性

面向对象编程(Object-Oriented Programming, OOP)是现代编程中的重要思想,尤其在Python这种灵活而强大的语言中,OOP无处不在。它能帮助我们编写更模块化、可维护的代码,适合从初学者到资深开发者的各种需求。本文将带你从零开始,深入浅出地探索面向对象编程的三大核心主题:类与对象的概念、类的定义与实例化、方法与属性的定义。通过清晰的结构、通俗的语言和实用的代码示例,你将快速掌握Python OOP的基础知识,并为后续进阶学习打下坚实基础。

吴师兄大模型的博客 1803

系统学习Python——类(class)代码的编写基础与实例:类生成多个实例对象

从最底层来看,类基本上就是命名空间,这点很像Python的模块。但是类和模块不同的是,类还支持生成多个对象、命名空间继承以及运算符重载。

冯·诺依曼 1万+

Python基础学习记录(10/12)——类与对象

对象(多态,封装,继承)和类(自定义,隐藏属性,深入继承)

qq_40160983的博客 216

DW学习-Python基础10(类、对象)

目录

木易是木易啊的博客 1241

Python程序设计 类与对象

面向对象不是新的东西,它只是过程式代码的一种高度封装,目的在于提高代码的开发效率和可维护性。面向对象编程(Object-oriented Programming,简称OOP)是一种编程范例,它提供了一种结构化程序的方法,以便将属性和行为捆绑到单个对象中。在面向对象程序开发思想中,每一个对象都是功能中心,具有明确分工,可以完成接受信息、处理数据、发出信息等任务。

weixin_58063872的博客 1200

面向对象——类与对象

面向对象不是新的东西,它只是过程式代码的一种高度封装,目的在于提高代码的开发效率和可维护性。面向对象编程(Object-oriented Programming,简称*OOP)*是一种编程范例,它提供了一种结构化程序的方法,以便将属性和行为捆绑到单个对象中。在面向对象程序开发思想中,每一个对象都是功能中心,具有明确分工,可以完成接受信息、处理数据、发出信息等任务。

weixin_64534587的博客 1812

python中的类和对象的基本概念记录

python中所有的类都继承 object 类class Person(object): # 显示的说明这个类继承object类class Person: # 没有指定父类,即使没有写,这个类也默认继承 object 类公有/私有 类 属性/方法公有/私有 对象 属性/方法公有/私有的静态方法对象的构造方法 _init在 例化对象时自动调用, 用于绑定或初始化对象属性。init_ 是一种特殊的写法,叫这个名字的就是构造方法。

dmf_fff的博客 1064

Python——狂肝两万字带你学会【类与对象】

类(class)和对象(object)是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型。它们的关系是,对象是类的实例,类是对象的模板。

荷叶田田的博客 1942

Python定义类、创建类的对象(类的实例化)

定义类 语法格式 在python中,可以通过class关键字定义类,然后通过定义的类来创建实例对象。语法格式如下: calss 类名: 类体 注意事项 在python中使用class关键字来定义类,定义类时需要注意以下几个事项: (1)类代码块以class关键字开头,代表定义类。 (2)class之后是类名,这个名字由用户自己指定,命名规则一般是多个单词组成的名称,每个单词除了第一个字母大写之外,其余字母均为小写,class和类名中间要有空格。 (3)类名后加冒号,类体由缩进的语句块组成,

m0_53977675的博客 1万+
上一篇: python学习记录8--给自己:函数的封装(),index()待补充
下一篇: python学习记录11--给自己:函数初始化
mee_tiz
博客等级 码龄10年 51粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值