python----面向对象

news2024/12/23 13:32:14

这里写目录标题

  • 面向对象思想
      • 类的定义
      • 类名的定义
      • 类的构造函数的定义
      • 类的属性
      • 类的方法定义
    • 继承
      • 语法
      • 关于构造函数问题
    • 文件操作
      • 绝对路径
      • 相对路径
      • pycharm获取绝对路径和相对路径
      • 文件读写
        • 读文件
          • open()
          • read()
          • readline()
          • readlines()
          • 关闭文件
        • 写文件
          • open()
          • write()
        • 追加内容
        • 读+写模式

面向对象思想

类的定义

在这里插入图片描述
class 空格 类名 冒号

类名的定义

在这里插入图片描述
类名常使用大驼峰命名法

类的构造函数的定义

在这里插入图片描述
def init(self, 参数):
self.属性=参数
构造函数的定义,有几个特殊的地方,首先,他的名字就叫_init_, 其次他有一个默认参数是self,效果就是c++中的this指针,下面属性的赋值都要用到this指针
注意 init前后一共四个下划线

而创建类的对象时,使用类名+括号,里面传入构造函数的参数

类的属性

py中类的属性无需单独进行定义,在构造函数里对谁进行了构造,谁就是类的属性

类的方法定义

在这里插入图片描述
仍然是def 方法名 (self,其他参数)
其中第一个方法,输出时可以对字符串进行乘法运算
第二个方法,使用了f-格式化字符串

继承

语法

在这里插入图片描述
在类名后面加上括号,里面填入父类的类名,就是继承了父类
这样的话 子类就继承了父类的所有的方法和属性
而对于方法和构造方法调用的逻辑是,优先看自己是否有对应的方法,如果没有,再去父类中寻找

关于构造函数问题

当我们继承了父类的构造函数,从而子类可以通过父类的构造函数进行一些属性的构造时,如果子类有自己独特的属性需要构造,那么就会想到在子类中单独对那个独特的属性进行构造,但是这样一来,子类的构造函数被调用了,就不会再去调用父类的构造函数了(如下附图)在这里插入图片描述
所以,我们要用下面的方式来解决
在这里插入图片描述
即在子类的构造方法中,通过super()返回父类对象之后,先调用父类的构造函数,对相关属性进行构造,之后再进行自己独特的属性的构造

文件操作

绝对路径

在这里插入图片描述
在这里插入图片描述

相对路径

在这里插入图片描述
在这里插入图片描述

pycharm获取绝对路径和相对路径

在这里插入图片描述
可以获得文件的绝对路径和以最顶层项目文件夹为参考的相对路径

文件读写

读文件
open()

在这里插入图片描述
1、打开文件
open(路径,模式)
“r”:只读
“w”:只写
2、编码格式,如下图的encoding=“utf-8”
在这里插入图片描述

read()

在这里插入图片描述
使用open打开之后,会返回一个文件对象,该对象有一个read方法,会将文件的内容读到代码中
注意,这里有个细节,就是如果连续两次读取文件的话,第二次会读到空字符,因为程序会记录读到了哪个位置,第一次已经读到了程序的末尾,所以第二次再读就会是空
在这里插入图片描述
当然可以规定一次读多少字节,这样的话,第二次也会读到内容

readline()

在这里插入图片描述
f对象还有个readline方法,一次读取一行,他会根据换行符来判断是否进入了下一行,同时,他会读到换行符,并给到程序,所以输出的话,会每行之间多一行,那是读取到的换行符,加之printf会自动换行,二者共同作用导致的

在这里插入图片描述
小tips,如果读到了最后一行的下一行,那么readline()会返回空字符串,即“”,所以可以根据这个来进行循环读取

readlines()

在这里插入图片描述
他会读取全部内容,并且把每行的内容(包括换行符)当成列表的一个元素进行返回,如上图
在这里插入图片描述
所以,readlines会配合for循环进行使用,这样每次都输出一个元素,会输出一行的内容加一个换行,同时加之print自动换行,就形成上面那种跟readline一样的效果

关闭文件

在这里插入图片描述
两种方式,
关于第二种,with + open(…) as 文件操作对象命名,且接下来的文件操作都要进行缩进

写文件
open()

在这里插入图片描述
写文件时,要将“r”改为“w”

要注意的是,写文件与读文件有一点不同,就是如果在r模式下,文件路径不存在,那么会报错,但是在w模式下,哪怕根据路径找不到文件,那么也不会报错,而是自动创建文件。
第二点需要注意的是,如果输入的路径文件存在,那么使用w模式打开的话,会将文件的内容清空后进行写的操作,所以需要三思而后行
在这里插入图片描述
接下来我们还是可以传入encoding选择编码格式

write()

在这里插入图片描述
该函数是对文件执行写的操作,但是要注意,如上图所示,write函数不会执行默认换行
在这里插入图片描述
如果想要换行的效果,那么需要手动加上换行符

追加内容

在这里插入图片描述
如果不想情况文件的内容,而是想接着文件的内容继续写,那么就要将“w”换成“a”,表示追加模式,并且会在内容的最后一行进行追加,而不是另起一行,同样,如果文件名不存在,会创建一个新的文件

读+写模式

在这里插入图片描述
如果既想读到文件,又想向文件追加写入内容,那么有一个“r+”模式,他所返回的文件操作对象有read方法以及write方法,两个可以同时使用,但是在其他模式则不行,读就是读,写就是写,同时要注意,在当前模式下,write是追加写入内容

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

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

相关文章

2021年CSP-J认证 CCF信息学奥赛中小学初级组 第一轮真题-单项选择题解析

2021年 中小学信息学奥赛CSP-J真题解析 1、以下不属于面向对象程序设计语言的是 A、c B、python C、java D、c 答案:D 考点分析:主要考查编程语言,ABC都是面向对象语言,D选项c语言是面向过程语言,答案D 2、以下奖…

202427读书笔记|《猫的自信:治愈系生活哲学绘本》——吸猫指南书,感受猫咪的柔软慵懒与治愈

202427读书笔记|《猫的自信:治愈系生活哲学绘本》——吸猫指南书,感受猫咪的柔软慵懒与治愈 《猫的自信:治愈系生活哲学绘本》作者林行瑞,治愈系小漫画绘本,10分钟可以读完的一本书,线条明媚,自…

SQL注入工具之SQLmap入门操作

了解SQLmap 基础操作 SQLmap是一款自动化的SQL注入工具,可以用于检测和利用SQL注入漏洞。 以下是SQLmap的入门操作步骤: 1.下载SQLmap:可以从官方网站(https://sqlmap.org/)下载最新版本的SQLmap。 2.打开终端&#…

CDP和Chrome

CDP和Chrome CDP和WebDriver Protocol WebDriver和 Chrome DevTools Protocol(CDP) 是用于自动化浏览器的两个主要协议,大多数的浏览器自动化工具都是基于上述其中之一来实现的。可以通过这两种形式来和浏览器交互,通过代码来控…

使用maven集成spring在测试的时候报出了如下的异常:version 60

使用maven集成spring在测试的时候报出了如下的异常: Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 60 解决:

MAC M1安装vmware和centos7虚拟机并配置静态ip

一、下载vmware和centos7镜像 1、VMWare Fusion 官网的下载地址是:下载地址 下载好之后注册需要秘钥,在官网注册后使用免费的个人秘钥 2、centos7 下载地址: https://biosyxh.cn:5001/sharing/pAlcCGNJf 二、虚拟机安装 直接将下…

比特币正在蚕食黄金

号外:教链内参2.19《内参:蹭热点、骗流量、割韭菜》 众所周知,自从美国SEC批准比特币现货ETF登陆美股市场之后,打开了美国金融市场泛滥的流动性向比特币流入的大门。只用了短短的30个交易日,比特币ETF就从零膨胀到了近…

基于RBAC的权限管理的理论实现和权限管理的实现

权限管理的理论 首先需要两个页面支持,分别是角色管理和员工管理,其中角色管理对应的是角色和权限的配合,员工管理则是将登录的员工账号和员工所处的角色进行对应,即通过新增角色这个概念,让权限和员工并不直接关联&a…

Ubuntu18.04有线连接后,无法设置ip地址以及显示网口设置

前提:首先测试过网线是完全没问题的 桌面端找不到设置网口 终端输入: ifconfig 没有找到网口设置和对应IP 然后查询网口驱动是否正常安装,输入: lspci | grep Ethernet 有输出说明网口驱动正常安装 然后查询电脑的ip地址&am…

2023年全球软件开发大会(QCon北京站2023)2月:核心内容与学习收获(附大会核心PPT下载)

本次峰会是一个汇集了最新技术趋势、最佳实践和创新思维的盛会。对于从事软件开发和相关领域的专业人士来说,参加这样的大会将有助于他们了解行业动态、提升技能水平、拓展职业视野,并与同行建立联系和合作。 本次峰会包含:AI基础架构、DevO…

Stable Diffusion 绘画入门教程(webui)-lora

通过前边的文章,相信大家已经能够自己产出好看的小姐姐或者小哥哥了🤣 不知道有没有发现每次生成的脸、身材、衣服、环境、风格等等可能都会有所差异,那么如果这个问题不解决,实用性将大大降低,因此lora诞生了。 文章…

人工智能_普通服务器CPU_安装清华开源人工智能AI大模型ChatGlm-6B_001---人工智能工作笔记0096

使用centos安装,注意安装之前,保证系统可以联网,然后执行yum update 先去更新一下系统,可以省掉很多麻烦 20240219_150031 这里我们使用centos系统吧,使用习惯了. ChatGlm首先需要一台个人计算机,或者服务器, 要的算力,训练最多,微调次之,推理需要算力最少 其实很多都支持C…

SpringBoot常见问题

1 引言 Spring Boot是一个基于Spring框架的快速开发脚手架,它简化了Spring应用的初始化和搭建过程,提供了众多便利的功能和特性,比如自动配置、嵌入式Tomcat等,让开发人员可以更加专注于业务逻辑的实现。   Spring Boot还提供了…

IO进程线程作业day2

使用fread和fwrite完成两个图片文件的拷贝 #include <myhead.h> #define high 541 #define wide 541 int main(int argc, const char *argv[]) {//以只读的方式打开图片文件1.bmpFILE *fp NULL;if((fp fopen("./1.bmp", "r")) NULL){perror(&qu…

数据分析 - 机器学习

1&#xff1a;线性回归 线性回归是一种统计技术用于对输出变量与一个或多个输入变量之间的关系进行建模 用外行人的话来说&#xff0c;将其视为通过某些数据点拟合一条线&#xff0c;如下所示 以便在未知数据上进行预测&#xff0c;假设变量之间存在线性关系 点和线之间存在微小…

实体类赋值之后,数据库属性最后为null的解决方法

目录 1. 问题所示2. 原理分析1. 问题所示 执行代码赋值的时候,通过Debug可以看到成功被赋值,但执行到最后,该数据库的属性为null 如图所示: 2. 原理分析 针对这种情况,排查了一个晚上才找到根本原因 最后发现是持久化操作的问题,本身赋值之后,对于数据库还要执行一个…

112. Path Sum(路径总和)

问题描述 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶子节点 是指…

MCAL知识点(二十七):TC275如何通过GPT12实现ABZ解码

目录 1、概述 2、代码实现 1、概述 GPT12 - General Purpose Timer Unit (GPT12):通用定时器单元,具备较为灵活的定时器结构,可以用来做定时器、事件计数、脉冲宽度测量、产生PWM、频率调制、ABZ编码器增量测量。文章记录一下如何通过GPT12实现编码器ABZ信号的测量。 注意…

《基于CEEMDAN一小波包自适应阈值混凝土声发射信号降噪研究》算法思路笔记

![1]杨智中,林军志,汪魁等.基于CEEMDAN-小波包自适应阈值混凝土声发射信号降噪研究[J].振动与冲击,2023,42(03):139-149.DOI:10.13465/j.cnki.jvs.2023.03.016.](https://img-blog.csdnimg.cn/direct/9814ff64cc474cd3aa06ecaea60f2f75.png) 首先对周期循环荷载作用下混凝土试…

辉辉数码:目前电视盒子哪个最好?目前性能最好的电视盒子

大家好&#xff0c;我是辉辉&#xff0c;上期测评发布后我收到了很多粉丝的反馈希望我这期能分享电视盒子推荐&#xff0c;看看目前电视盒子哪个最好。我购入了市面上最热门的十几款电视盒子对比配置、系统后整理了五款目前性能最好的电视盒子推荐给大家。 品牌型号&#xff1…