python----面向对象

这里写目录标题

  • 面向对象思想
      • 类的定义
      • 类名的定义
      • 类的构造函数的定义
      • 类的属性
      • 类的方法定义
    • 继承
      • 语法
      • 关于构造函数问题
    • 文件操作
      • 绝对路径
      • 相对路径
      • 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.mzph.cn/news/690413.shtml

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

相关文章

Python(九十三)函数的参数总结

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

如何在Win11系统中使用ubuntu(WSL)终端编译 Rust 程序

第一步:安装 WSL 参考微软提供的官方指南 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl --install 命令,然后重启计算机。 第二步:安装 ubuntu22.04 …

网站常见的反爬手段及反反爬思路

摘要:介绍常见的反爬手段和反反爬思路,内容详细具体,明晰解释每一步,非常适合小白和初学者学习!!! 目录 一、明确几个概念 二、常见的反爬手段及反反爬思路 1、检测user-agent 2、ip 访问频率的限制 …

JavaScript和Java:两个不同世界的编程语言

在计算机编程的世界里,有两个看似相似但实际上截然不同的语言:JavaScript和Java。虽然它们在名字上有相似之处,但它们的历史、设计目标和用途却迥然不同。 Java的诞生 Java最初于1991年由Sun Microsystems(现在是Oracle的一部分…

Stochastic Depth 原理与代码解析

paper:Deep Networks with Stochastic Depth official implementation:https://github.com/yueatsprograms/Stochastic_Depth third-party implementation:https://github.com/open-mmlab/mmcv/blob/main/mmcv/cnn/bricks/drop.py 存在的问…

【day01】每天三道 java后端面试题:JDK、JRE和JVM | 字节码 | ACID

文章目录 1. JDK, JRE, JVM分别是什么?有什么区别?2. 什么是字节码?采用字节码的最大好处是什么?3. 什么是数据库事务?讲一下事务的ACID特性。 1. JDK, JRE, JVM分别是什么?有什么区别? 答题思路…

深度解析 Transformer 模型:原理、应用与实践指南【收藏版】

深度解析 Transformer 模型:原理、应用与实践指南 1. Transformer 模型的背景与引言2. Transformer 模型的原理解析2.1 自注意力机制(Self-Attention)自注意力机制原理 2.2 多头注意力机制(Multi-Head Attention)多头注…

探索单片机应用领域:从智能家居到工业自动化

单片机作为一种微型计算机芯片,在智能家居和工业自动化领域有着广泛的应用。以下将从智能家居和工业自动化两个方面分点论述单片机的应用。 智能家居领域: 1. 智能灯光控制: 单片机可以用于控制智能灯光系统,实现灯光的远程控制…

找出盗窃者

找出盗窃者 题目描述: 某地发生了⼀件盗窃案,警察通过排查确定盗窃者必为4个嫌疑⼈的⼀个。 以下为4个嫌疑人的供词: A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人…

java+vue_springboot企业设备安全信息系统14jbc

企业防爆安全信息系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了vue框架。该系统从三个对象:由管理员、人员和企业来对系统进行设计构建。主要功能包括:个人信息修改,对人员管理&am…

C++ 浮点数二分 数的三次方根

给定一个浮点数 n ,求它的三次方根。 输入格式 共一行,包含一个浮点数 n 。 输出格式 共一行,包含一个浮点数,表示问题的解。 注意,结果保留 6 位小数。 数据范围 −10000≤n≤10000 输入样例: 1000.00…

树与二叉树

树与二叉树 文章目录 树与二叉树一、树的概念及结构1.、树的概念2、树的相关概念1.3 树的表示 二、二叉树1.概念2、特殊的二叉树3、二叉树的性质4、二叉树的存储结构 三、二叉树的顺序结构及实现1、二叉树的顺序结构2、堆的概念及结构3、堆的实现 四、二叉树链式结构的实现1、遍…

Jtti:PHP怎么实现Memcached主从复制自动切换

在 PHP 应用中实现 Memcached 主从复制自动切换通常需要结合一些额外的工具和技术来实现。下面是一种可能的方案: 1. 使用 Memcached 主从复制: 首先,您需要设置 Memcached 主从复制,确保主服务器和从服务器之间同步数据。这可以通…

python统计分析——一元线性回归分析

参考资料:用python动手学统计学 1、导入库 # 导入库 # 用于数值计算的库 import numpy as np import pandas as pd import scipy as sp from scipy import stats # 用于绘图的库 import matplotlib.pyplot as plt import seaborn as sns sns.set() # 用于估计统计…

dayjs实现前端消息通知日期格式显示——仿微信消息时间

背景:在做一个消息通知类的需求,在PC端实现消息接收界面,日期显示参考微信聊天界面消息时间提示。具体规则如下: 当天:显示时分 昨天:显示‘昨天时分’ 本周:显示“周几时分” 本周之前&#xf…

LeetCode 36天 | 435.无重叠区域 763.划分字母区间 56.合并区间

435. 无重叠区间 左边排序&#xff0c;右边裁剪为当前最小的 class Solution { public:// 按照左边界排序static bool cmp(vector<int> a, vector<int> b) {return a[0] < b[0];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {…

JAVA常见IO模型 BIO、NIO、AIO总结

BIO Blocking IO 同步阻塞型IO。当系统进行IO读写的时候&#xff0c;会阻塞&#xff0c;直到IO读写完毕。比如调用系统Read后&#xff0c;需要将内核空间的数据读取到用户空间。需要等待内核空间 数据准备&#xff0c;数据就绪&#xff0c;拷贝数据&#xff0c;线程一直处于阻…

CSS之重绘与回流

重绘&#xff08;Repaint&#xff09; 当页面中元素样式的改变并不影响它在文档流中的位置时&#xff08;例如改变颜色、阴影等&#xff09;&#xff0c;浏览器会进行重绘&#xff0c;即重新绘制元素的外观。 回流&#xff08;Reflow&#xff09; 当元素的大小、位置、隐藏等…

IO进程:fread\fwrite图像拷贝,read\write文件拷贝,时间函数

1.使用fread、fwrite实现图片拷贝 程序代码&#xff1a; 1 #include<myhead.h>2 int main(int argc, const char *argv[])3 {4 //判断传入文件个数5 if(argc!3)6 {7 printf("input file error\n");8 printf("usage:./a.out …

【QCA6174】SDX12+QCA6174驱动屏蔽120/124/128信道修改方案

SDX12基线版本 SDX12.LE.1.0-00215-NBOOT.NEFS.PROD-1.39743.1 问题描述 对于欧洲国家来说,默认支持DFS信道,但是有三个信道比较特殊,是天气雷达信道,如下图所示120、124、128,天气雷达信道有个特点就是在信号可以发射之前需要检测静默15min,如果信道自动选择到了天气雷达…