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编程的初学者和有一定编程基础的人。无…

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

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

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)多头注…

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、遍…

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() # 用于估计统计…

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

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

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,如果信道自动选择到了天气雷达…

BI 数据分析,数据库,Office,可视化,数据仓库

AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作 PowerBI 商业智能 68集 Mysql 8.0 54集 Oracle 21C 142集 Office 2021实战应用 Python 数据分析实战&#xff0c; ETL Informatica 数据仓库案例实战 51集 Excel 2021实操 100集&#xff0c; Excel 2021函数大全 80集 Excel 2021…

阿里云服务器镜像选择方法详解,这么选就对了!

阿里云服务器镜像怎么选择&#xff1f;云服务器操作系统镜像分为Linux和Windows两大类&#xff0c;Linux可以选择Alibaba Cloud Linux&#xff0c;Windows可以选择Windows Server 2022数据中心版64位中文版&#xff0c;阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器操…

HarmonyOS 鸿蒙应用开发(十一、面向鸿蒙开发的JavaScript基础)

ArkTS 是HarmonyOS&#xff08;鸿蒙操作系统&#xff09;原生应用开发的首选语言。它是用于构建用户界面的一种TypeScript方言&#xff0c;扩展了TypeScript以适应HarmonyOS生态系统的UI开发需求。ArkTS 融合了TypeScript的静态类型系统和现代UI框架的设计理念&#xff0c;为开…

练习题解(关于最短路径)

目录 1.租用游艇 2.邮递员送信 3.【模板】单源最短路径&#xff08;标准版&#xff09; 1.租用游艇 P1359 租用游艇 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 输入数据&#xff1a; 3 5 15 7 因为这道题数据不大&#xff0c;所有我们直接使用Floyd 算法。 这道题大…

Linux系统——防火墙Firewalld

目录 一、firewalld介绍 1.归入zone顺序 2.firewalld zone分类 3.预定义服务 二、图形化操作 1.打开firewalld图形化界面 2.以http服务为例&#xff0c;打开httpd服务 3.修改端口号 三、命令行配置 1.基础配置 2.查看现有firewalld设置 3.设置查看默认区 4.添加源…

类(接口)图几种箭头含义

导语 在平时的开发中&#xff0c;难免会遇到画UML图的时候&#xff0c;也就是我们所说的类图&#xff0c;但是UML图中的箭头多种多样&#xff0c;所代表的含义也是各不相同&#xff0c;今天我们就来说说这几种箭头所代表的含义。 1 泛化 概念&#xff1a;泛化表示一个更泛化的元…

CTFshow web(php命令执行 55-59)

web55 <?php /* # -*- coding: utf-8 -*- # Author: Lazzaro # Date: 2020-09-05 20:49:30 # Last Modified by: h1xa # Last Modified time: 2020-09-07 20:03:51 # email: h1xactfer.com # link: https://ctfer.com */ // 你们在炫技吗&#xff1f; if(isset($_GET[…

Jetpack 之Glance+Compose实现一个小组件

Glance&#xff0c;官方对其解释是使用 Jetpack Compose 样式的 API 构建远程 Surface 的布局&#xff0c;通俗的讲就是使用Compose风格的API来搭建小插件布局&#xff0c;其最新版本是2022年2月23日更新的1.0.0-alpha03。众所周知&#xff0c;Compose样式的API与原生差别不小&…