黑马python-面向对象程序设计

1.定义类

class 类名:

代码

…..

注意:类名要满足标识符命名规则,同时遵循大驼峰命名习惯

2.self:

self指调用该函数的对象

3.创建对象

对象名=类()

4.添加获取对象属性

对象名.属性名=值

5._init_()方法:初始化对象

创建一个对象时默认调用,不需要手动调用

_init()_(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去

带参数的_init_()方法,可以进行初始化属性设置

6._str_()方法:

使用print输出对象的时候,默认打印对象的内存地址,如果类定义了_str_方法,那么就会打印从在这个方法中的return的属性

7._del_()方法

当删除对象时,python解释器默认调用_del_方法

8.经典类或旧式类

经典类:class 类名:

代码

旧式类:class 类名(object):

代码

9.继承:

多个类之间的所属关系,即子类默认继承父类的所有属性和方法

在Python中,所有类默认继承object类,object类是顶级类或基类;其他子类叫做派生类

单继承:一个子类只继承一个父类

多继承:一个子类同时继承多个父类

如果父类有同名属性和方法,优先使用第一个父类的

10.重写

如果子类和父类拥有同名属性和方法,子类创建对象调用属性和方法的时候,调用到的是子类里面的同名方法

11.print(子类.__mro__):输出子类继承的父类有哪些

12.super():调用父类方法

无参数:可以自动查找父类,调用顺序遵循__mro__()

带参数:super(当前类名,self).函数()

13.定义私有属性和方法

可以为实力属性和方法设置私有权限,即设置某个实例属性或实例方法不继承给子类

在属性和方法名前加两个下划线

14.获取和修改私有属性值

15.面向对象三大特性:

封装:

将属性和方法书写到类的里面的操作即为封装

封装可以为属性和方法添加私有权限

继承:

子类默认继承父类的所有属性和方法

子类可以重写父类属性和方法

多态:

传入不同的对象,产生不同的结果

16.多态:

定义:多态是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果

好处:调用灵活,有了多态,更容易编写出通用的代码,做出通用的编程,以适应需求的不断变化

实现步骤:

定义父类,提供公共方法

定义子类,并重写父类方法

传递子类对象给调用者,可以看到不同子类执行效果不同

17.类属性:

类属性就是类对象所拥有的属性,它被该类所有的实例对象所共有

类属性可以使用类对象或者实例对象访问

优点:

记录的某项数据始终保持一致时,则定义类属性

实例属性要求每个对象为其单独开辟一份内存空间来记录时间,而类属性为全类所共有,仅占用一份内存,更加节省内存空间

类属性只能通过类对象修改,不能通过实例对象修改,如果通过实例对象修改类属性,表示的是创建了一个实例属性

18.类方法

特点:需要用装饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数

类方法使用场景:

当方法中需要使用类对象(如访问私有类属性等)时,定义类方法

类方法一般和类属性配合使用

4.静态方法:

特点:需要通过装饰器@staticmethod来进行修饰静态方法既不需要传递类对象也不需要传递实例对象(形参没有self/cls)

静态方法也能够通过实例对象和类对象去访问

使用场景:

当方法中既不需要使用实例对象,也不需要使用类对象时,定义静态方法

取消不需要的参数传递,有利于减少不必要的内存占用和性能消耗

5,异常:

当检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误提示,这就是所谓的异常

写法:

try:

可能出错的代码

except:

如果出现异常执行的代码

捕获指定异常类型:

try:

可能发生错误的代码

except 异常类型:

如果捕获到该异常类型执行的代码

注意:如果尝试执行的代码异常类型和要捕获的异常类型不一致,则无法捕获异常

一般try下方只放一行代码

捕获多个指定异常:

可以把要捕获的异

常类型的名字,放到except后,并使用元组的方式进行书写

捕获异常描述信息:

捕获所有异常

异常的else:

else表示的是如果没有异常要执行的代码

异常的finally

finally表示的是无论是否异常都要执行的代码,例如关闭文件

自定义异常:

在python中,抛出自定义异常的语法为raise异常类对象

#自定义异常类

 class 异常类类名(Exception):

代码

def  _str_(self):

return …

#抛出异常

raise 异常类名()

#捕获异常

except Exception…

6.模块

Python模块是一个Python文件,以.py结尾,包含了Python对象定义和Python语句

模块能定义函数,类和变量,模块里也能包含可执行的代码

导入模块写法:

import 模块名

from 模块名 import 功能名

from 模块名 import *

import 模块名 as 别名

from 模块名 import 功能名 as 别名

import:

from…import…:

from …import *

as定义别名:

定义模块

模块定位顺序:

当导入一个模块,Python解释器对模块位置的搜索顺序是:

1.当前目录

2.如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录

3.如果都找不到,Python会查看默认路径。UNIX下,默认路径一般为/usr/local/lib/python

模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录

注意:

自己的文件名不要和已有模块名重复,否则导致模块功能无法使用

使用from模块名import功能的时候,如果功能名字重复,调用到的是最后定义或导入的功能

_all_:

如果一个模块文件中有_all_变量,当使用from xxx import *导入时,只能导入这个列表中的元素

7.包:

定义:

包将所有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py文件,这个文件就称为包

制作包:

[New]——[Python Package]——输入报名——OK——新建功能模块

注意:新建包后,包内部会自动创建__init__.py文件,这个文件控制着包的导入行为

导入包:

方法一:

import 包名.模块名

包名.模块名

方法二:

必须在_init_.py文件中添加_all_=[ ],控制允许导入的模块列表

from 包名 import *

模块名.目标

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

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

相关文章

Hadoop+Spark大数据技术 实验8 Spark SQL结构化

9.2 创建DataFrame对象的方式 val dfUsers spark.read.load("/usr/local/spark/examples/src/main/resources/users.parquet") dfUsers: org.apache.spark.sql.DataFrame [name: string, favorite_color: string ... 1 more field] dfUsers.show() -----------…

李飞飞亲自撰文:大模型不存在主观感觉能力,多少亿参数都不行

近日,李飞飞连同斯坦福大学以人为本人工智能研究所 HAI 联合主任 John Etchemendy 教授联合撰写了一篇文章,文章对 AI 到底有没有感觉能力(sentient)进行了深入探讨。 「空间智能是人工智能拼图中的关键一环。」知名「AI 教母」李…

【数据结构】P1 数据结构是什么、算法怎样度量

1.1 基本概念与术语 数据: 数据是信息的载体,是所有能被计算机识别以及处理的符号。数据元素: 数据元素是数据基本单位,由若干 数据项 组成,数据项是构成数据元素最小的单位。 e . g . e.g. e.g. 数据元素如一条学生记…

Leetcode 2028

思路&#xff1a;1-6之间的的n个数组合起来要变成sum_t mean*(rolls.size()n) - sum(rolls) ; 那么可以先假设每个数都是sum_t / n 其中这个数必须要在1 - 6 之间否者无法分配。 然后可以得出n * (sum_t / n ) < sum ; 需要对余数mod进行调整&#xff0c;为了减少调整的次…

接口测试及接口测试常用的工具详解

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 首先&#xff0c;什么是接口呢&#xff1f; 接口一般来说有两种&#xff0c;一种是程序内部的接口&#xff0c;一种是系统对外的接口。 系统对外的接口&#xff1a;比如你要从别的网站或服务器上获取资源或信息…

深入了解 CSS 预处理器 Sass

今天我们来深入探讨一下 CSS 预处理器 Sass。我们将学习什么是 Sass,如何使用它,以及它是如何工作的。 什么是 Sass? Sass 是 syntactically awesome style sheets 的缩写,是一种 CSS 预处理器。它是 CSS 的扩展,为基础 CSS 增加了更多的功能和优雅。普通的 CSS 代码很容…

sklearn监督学习--k近邻算法

sklearn监督学习 一、分类与回归二、泛化、过拟合与欠拟合三、k近邻算法四、分析KNeighborsClassifier五、k近邻算法用于回归优点、缺点和参数 一、分类与回归 监督学习是最常用也是最成功的机器学习类型之一。监督机器学习问题主要有两种&#xff0c;分别叫做分类与回归。分类…

IDEA项目通过 tomcat运行报错: 404 请求的资源不可用

SpringBootVue项目 IDEA运行 Tomcat&#xff0c;自动打开网页报错 HTTP状态 404 - 未找到 类型 状态报告 消息 请求的资源[/WarehouseManagerApi_war/]不可用 描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。 Apache Tomcat/9.0.89 但是运行访问 …

【接口测试_04课_Jsonpath断言、接口关联及加密处理】

一、Jasonpath的应用 JsonPath工具网站&#xff1a;JSONPath解析器 - 一个工具箱 - 好用的在线工具都在这里&#xff01; 1、JSONPath的手写与获取 手写JSONPath 1、 $ &#xff08;英文美元符号&#xff09;代表外层的{} . &#xff08;英文句号&#xff09;表示当前…

卷积神经网络-奥特曼识别

数据集 四种奥特曼图片_数据集-飞桨AI Studio星河社区 (baidu.com) 中间的隐藏层 已经使用参数的空间 Conv2D卷积层 ReLU激活层 MaxPool2D最大池化层 AdaptiveAvgPool2D自适应的平均池化 Linear全链接层 Dropout放置过拟合&#xff0c;随机丢弃神经元 -----------------…

echarts快速入门

之前只看过&#xff0c;没写过&#xff0c;来了个新需求了解下echarts功能 官网&#xff1a;https://echarts.apache.org/handbook/zh/get-started 官方参数文档&#xff1a;https://echarts.apache.org/zh/option.html#title 其实大部分问题&#xff0c;去官方参数文档里面都…

【项目教程】FFmpeg+SDL2实现视频播放器

一、前言 学习ffmpeg和sdl&#xff0c;并编写一个视频播放器&#xff0c;是一个很好的音视频开发项目。 虽然关于视频播放器的原理已经有很多人在博客中进行了讲解&#xff0c;但是很多人不提供视频和代码&#xff0c;这也是我写这篇博客的主要原因。 二、在视频播放器中&am…

【组合数学 放球问题 虚拟点 小于等于转小于】1621. 大小为 K 的不重叠线段的数目

本文涉及知识点 放球问题 组合数学汇总 本题难道分&#xff1a;2198 LeetCode1621. 大小为 K 的不重叠线段的数目 给你一维空间的 n 个点&#xff0c;其中第 i 个点&#xff08;编号从 0 到 n-1&#xff09;位于 x i 处&#xff0c;请你找到 恰好 k 个不重叠 线段且每个线段…

零拷贝(Zero Copy)

目录 零拷贝&#xff08;Zero Copy&#xff09; 1.什么是Zero Copy? 2.物理内存和虚拟内存 3.内核空间和用户空间 4.Linux的I/O读写方式 4.1 I/O中断原理 4.2 DMA传输原理 5.传统I/O方式 5.1传统读操作 5.2传统写操作 6.零拷贝 6.1.用户态直接IO 6.2.mmapwrite …

免费使用知网下载文献

第一步&#xff1a;输入网址&#xff1a;https://digi.library.hb.cn:8443/#/&#xff08;或搜索湖北省图书馆&#xff09; 第二步&#xff1a;点击登录按钮。 第三步&#xff1a;使用手机 支付宝 扫描页面左侧二维码。 第四步&#xff1a;手机点击“电子读者证注册”。&…

抖音 v27.8.0 内置增强模块,自动播放、无水印下载(可登录,助手增强版)

介绍 抖音应用作为全球领先的短视频平台&#xff0c;其内置功能允许用户将喜欢的内容保存至本地设备&#xff0c;但默认情况下&#xff0c;这些视频会带有抖音的水印。为了解决这一限制&#xff0c;该版本使用户能够直接保存不带水印的视频到手机中&#xff0c;无需使用任何第…

R25 型双极型晶体管 433功率放大器,集电极电流可达100mA

R25 型硅基微波双极型晶体管是一种常见的晶体管&#xff0c;主要用于高频电子放大线路中。常被用作放大器、开关、变频器等电子电路中的核心元件。在放大电路中&#xff0c;它可以将微弱的信号放大到足以驱动输出负载&#xff1b;在开关电路中&#xff0c;它可以实现电路的打开…

易查分小程序 学生成绩管理小程序

亲爱的老师们&#xff0c;是不是每次成绩公布后&#xff0c;家长们的连环夺命call让你头大&#xff1f;担心孩子们的成绩信息安全&#xff0c;又想快速分享给家长&#xff0c;这可咋整&#xff1f;别急&#xff0c;易查分小程序来帮忙啦&#xff01; 安全有保障 智能验证码&a…

基于tcp实现自定义应用层协议

认识协议 协议&#xff08;Protocol&#xff09; 是一种通信规则或标准&#xff0c;用于定义通信双方或多方之间如何交互和传输数据。在计算机网络和通信系统中&#xff0c;协议规定了通信实体之间信息交换的格式、顺序、定时以及有关同步等事宜的约定。简易来说协议就是通信…

【Linux】Linux下centos更换国内yum源

&#x1f331;博客主页&#xff1a;青竹雾色间 &#x1f331;系列专栏&#xff1a;Linux &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 目录 1. 备份旧的 YUM 源文件2. 下载国内的 YUM 源文件阿里云&#xff1a;网易&#xff1a; 3. 清理 YUM 缓存4. 更新…