黑马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 *

模块名.目标

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vs2010特殊字符‘’无法显示

记录一下,某天测试组的同事突然发了个邮件,说显示有问题 一看邮件内容,果然出bug了 修改办法如下: 把资源文件中的‘&’改成‘&&’,这样在使用的时候就能用了 成功

@RequestBody注解

文章目录 RequestBody注解基本概念在postman里如何发送接收端带有RequestBody的请求? RequestBody注解 基本概念 扩展: http报文会包含四部分,第一部分是请求行,第二部分是请求头,第三部分是空行,第四部分…

基于英飞凌BGT60LTR11AIP E6327芯片具低功耗的脉冲多普勒操作模式常用于汽车应用的雷达上

芯片特征: 60 GHz收发器MMIC,带一个发射器和一个接收器单元封装天线(AIP)(6.73.30.56 mm3)低功耗的脉冲多普勒操作模式自主模式用于运动和运动方向的集成检测器运动检测信号的直接输出目标检测范围的15个可配置阈值检测…

富港银行 邀请码 兑换码 优惠码 分享

首次记得一定要扫码注册,扫码注册开户费50美金,每笔26美金手续费,目前能接收CBI银行资金的有:工行、交通、中行,请知悉 cbi帐户管理费:10美元/月,余额>500美元,1美元/月/&#x…

李廉洋:5.29黄金原油持续震荡,今日美盘行情走势分析及策略。

黄金消息面分析:美联储理事鲍曼周二表示,她支持要么先等等再开始放缓缩减资产负债表,要么采取比本月早些时候宣布的更温和的放慢缩表进程。鲍曼认为商业银行准备金水平仍然充足,这让官员们有更多时间来推进缩表进程。“在准备金接…

FJSP:粒子群优化算法PSO求解柔性作业车间调度问题(FJSP),提供MATLAB代码

一、柔性作业车间调度问题 柔性作业车间调度问题(Flexible Job Shop Scheduling Problem,FJSP),是一种经典的组合优化问题。在FJSP问题中,有多个作业需要在多个机器上进行加工,每个作业由一系列工序组成&a…

电商API接口||电商数据连接器:一键连接,效率加倍!

电商数据API接口: 一键连接,效率加倍! 打造智能数据生态,让数据流动更加高效 在数字化时代,数据已成为企业发展的核心驱动力。电商API数据采集接口,助力电商企业实现数据的高效管理和应用。 电商数据API…

浅说线性DP(上)

前言 在说线性dp之前,我们先来聊一聊动态规划是啥? 动态规划到底是啥? 动态规划是普及组内容中最难的一个部分,也是每年几乎必考的内容。它对思维的要求极高,它和图论、数据结构不同的地方在于它没有一个标准的数学…

IPC$横向移动

一. IPC$介绍和连接方式 1. IPC$介绍 IPC( Internet Process Connection)共享,是为了实现进程间通信而开放的命名管道。IPC可以通过验证用户名和密码获得相应的权限,通常在远程管理计算机和查看计算机的共享资源时使用。通过ipc$,可以与目标机器建立连接。利用这个…

项目开发-若依框架

文章目录 框架下载及运行项目学习需求修改左侧菜单栏增加标签-项目信息搭建过程问题解决 后续需要看的内容 框架下载及运行 下载安装: https://blog.csdn.net/anxiaoxiao61/article/details/122505963 https://blog.csdn.net/m0_67376124/article/details/12761749…

安全阀校准周期是多久?重要性、影响因素与周期建议

安全阀,作为阀门家族中特殊的分支,其重要性不言而喻。 在压力操控设备项目工程中,安全阀扮演着至关重要的角色。它不同于其他阀门仅起开关作用,更重要的是能够保护设备的安全。 安全阀根据压力系统的工作压力自动启闭&#xff0…

RT_Thread内核源码分析(一)——CM3内核和上下文切换

目录 一、程序存储分析 1.1 CM3内核寻址空间映射 1.2 程序静态存储和动态执行 二、CM3内核相关知识 2.1 操作模式和特权极别 2.2 环境相关寄存器 2.2.1 通用寄存器组, 2.2.2 状态寄存器组 2.2.3 模式切换环境自动保存 2.2.4 函数调用形参位置 2.3 …

本特利330180-51-00前置器在工业自动化中的应用与优势

本特利330180-51-00前置器在工业自动化中的应用与优势 作为PLC技术员,在工业自动化领域中,我们经常接触到各种传感器和前置器。其中,本特利330180-51-00前置器以其卓越的性能和广泛的应用领域,受到了业界的广泛关注。本文将详细介…

野外作战武器操作3D模拟实操仿真训练以便老兵能适应不同的训练需求

强国必须强军,我国在军事方面的投入持续加大,自然在军事武器培训方面不容忽视,在军事领域,3D模拟展示不仅提升了军事训练的效率,还为我们提供了更加直观、真实的武器体验。 首先,3D军事武器模拟展示能够提供…

Kyndryl 与 Nvidia 建立新的人工智能基础设施合作伙伴关系

Kyndryl与Nvidia宣布达成新的人工智能基础设施战略合作,共同推动AI技术的广泛应用。根据这一合作,Nvidia的先进AI软件解决方案将被引入Kyndryl的开放集成平台——Kyndryl Bridge,以优化基础设施工作负载,并为客户提供更高效的IT服…

青岛有哪些媒体资源?参展参会邀约报道

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 青岛,以其优越的地理位置、丰富的产业资源、高度国际化的开放程度以及完善的会展设施,成为国内外知名的展览展会举办地。 此外,青岛作为中国重要的沿海…

leetCode.82. 删除排序链表中的重复元素 II

leetCode.82. 删除排序链表中的重复元素 II 题目思路: 代码 class Solution { public:ListNode* deleteDuplicates(ListNode* head) {auto dummy new ListNode(-1);dummy->next head;auto p dummy;while(p->next){auto q p->next->next;while(q …

开源博客项目Blog .NET Core源码学习(23:App.Hosting项目结构分析-11)

本文学习并分析App.Hosting项目中后台管理页面的标签管理页面、轮播图维护页面。 标签管理页面 标签管理页面用于显示、检索、新建、编辑、删除标签数据,以便在前台页面的首页及文章专栏等页面显示标签数据。标签管理页面附带一新建及编辑页面,以支撑新…

Python中的数据可视化:桑基图Sankey

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 Python中的数据可视化: 桑基图 Sankey [太阳]选择题 根据给定的Python代码,哪个选项是正确的? import matplotlib.pyplot as plt from matplotlib.sanke…

香橙派 AIpro的NPU随手记体验日记

昇腾AI 技术路线 8TOPS INT8(FP16)AI算力 LPDDR4X 8GB/16GB 📅 20240525 开放了原理图和源码,功能接口就不描述了手册都有描述,新手好好学习可以从底层覆盖到应用一个载板拿下 完成香橙派AIpro上手体验 镜像安装&am…