当前位置: 首页 > news >正文

黑马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.lryc.cn/news/355882.html

相关文章:

  • pod容器基础概念
  • AI日报:百度发布文心大模型学习机;Open-Sora 1.1可生成21秒视频;Canva可以自动剪辑视频了;超牛ComfyUI节点AnyNode来了
  • VUE3+TS+elementplus+Django+MySQL实现从数据库读取数据,显示在前端界面上
  • 用c++做贪吃蛇
  • 【UE5.1 角色练习】08-传送技能
  • 力扣283题:移动零(快慢指针)
  • Java面试精粹:高级问题与解答集锦(一)
  • Yourpassword does not satisfy the current policyrequirements
  • 解决vue3 vite打包报Root file specified for compilation问题
  • Java Swing + MySQL图书借阅管理系统
  • ssm招聘信息管理系统-计算机毕业设计源码78049
  • eBPF可观测之网络流量控制和管理traffic control浅尝
  • Java技术精粹:高级面试问题与解答指南(二)
  • 地下停车场FM信号覆盖系统技术原理用与应用
  • idea 出现 cpu占用100%
  • 如何学到数据库从入门到入土(MySQL篇)
  • 安卓手机APP开发__Wi-Fi扫描概述
  • 深入理解二叉树及其在C语言中的实现
  • 基于ssm+vue图书管理系统
  • 高防ip能防护变异CC攻击吗
  • 从多站点到多活,XEOS 对象数据容灾能力再提升
  • 3D开发工具HOOPS在BIM系统中的应用
  • 适合下班做的副业兼职、1天挣300,7天涨粉2万
  • JS中getElementById与querySelector区别收录
  • Android:使用Kotlin搭建MVC架构模式
  • delete原理
  • 青少年 CTF 练习平台:Misc(一)
  • 展锐平台+Android系统开发概要
  • unity开发Hololens 制作滑动框
  • 【JavaEE进阶】——Spring Web MVC (响应)