目录

描述

语法

使用示例

删除函数

删除类

删除列表元素

删除字典中的键值对


描述

del是Python关键字之一,它表示删除Python对象。在Python的世界中,一切都是由对象组成的。因此可以使用del删除由对象组成的一切。

语法

del <object>
名称 描述
object 待删除的对象

使用示例

删除函数

在Python中,函数也是对象。使用del可以删除函数的声明:

def hi():print("hi")if __name__ == '__main__':hi()# output: hidel hihi()# NameError: name 'hi' is not defined

del也可以删除类中的方法。对于在使用del之前就实例化的对象,也会一并删除对象中相应的方法:

class Hi(object):def hi(self):print("hi")if __name__ == '__main__':h = Hi()h.hi()# output: hidel Hi.hih.hi()# AttributeError: 'Hi' object has no attribute 'hi'

也可以选择删除对象中的属性,效果与上例相同。

class Hi(object):def hi(self):print("hi")if __name__ == '__main__':h1 = Hi()h2 = Hi()h1.hi()# output: hih2.hi()# output: hidel h2.hih1.hi()# AttributeError: hi# 虽然删除的是h2对象中的hi方法,但是会影响Hi类中的全部对象。

如果在使用del之前将要被删除的函数或方法赋值给其它变量,那么即使使用del语句删除掉相应的函数和方法,被赋值的变量依旧可以正常使用:

class Hi(object):def hi(self):print("hi")def hello():print("hello")if __name__ == '__main__':h = Hi()fun = h.hihel = hellodel Hi.hidel hellofun()# output: hihel()# # output: hello

删除类

使用del删除类不会影响该类实例化对象的使用。但是删除后就无法继续实例化新的对象了。

class Hi(object):def hi(self):print("hi")if __name__ == '__main__':h = Hi()del Hih.hi()# output: hih2 = Hi()# NameError: name 'Hi' is not defined

删除列表元素

del语句可以删除列表内指定索引的元素:

if __name__ == '__main__':demo = ["Python", "Java", "Golang"]del demo[1]print(demo)# output: ['Python', 'Golang']

如果要删除的索引超界,那么会抛出IndexError:

if __name__ == '__main__':demo = ["Python", "Java", "Golang"]del demo[3]print(demo)# IndexError: list assignment index out of range

删除字典中的键值对

del语句可以删除字典内的键值对:

if __name__ == '__main__':demo = {"A": "a", "B": "b"}del demo["B"]print(demo)# output: {'A': 'a'}

删除不存在的key会引发KeyError:

if __name__ == '__main__':demo = {"A": "a", "B": "b"}del demo["C"]# KeyError: 'C'

Python del:删除对象相关推荐

  1. python在删除对象时会自动调用析构函数_Python面向对象程序设计构造函数和析构函数用法分析...

    本文实例讲述了Python面向对象程序设计构造函数和析构函数用法.分享给大家供大家参考,具体如下: 构造函数和析构函数 1.构造方法的使用 很多类都倾向于将对象创建为有初始化状态.因此类可以定义一个名 ...

  2. python中删除对象方法的区别_python中delattr删除对象方法的代码分析

    最近我们针对对象属性这块,介绍了不少关于测试属性的方法.在进行一系列测试后,我们发现这个属性并不需要,这时候就要用到删除的功能.在python中可以选择delattr函数删除对象的属性,基于它的删除功 ...

  3. [转载] python如何删除对象属性_Python3基础 delattr 删除对象的属性

    参考链接: Python delattr() ? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.1 ...

  4. python如何删除对象属性_如何优雅的删除对象中的指定属性?

    要优雅的话,使用 Lodash 的 omit 方法移除不要的属性: const object = { 'a': 1, 'b': '2', 'c': 3 }; const result = _.omit ...

  5. Python对象引用和del删除引用

    1.首先介绍下python的对象引用 1)Python中不存在传值调用,一切传递的都是对象引用,也可以认为是传址调用.即Python不允许程序员选择采用传值或传引用.Python参数传递采用的是&qu ...

  6. python删除元素del 可以删除部分元素吗_可以使用del删除集合中的部分元素。

    [判断题]Python集合可以包含相同的元素.(3.0分) [单选题]student = dict(姓名='张三', 年龄=20, 性别='男'),则student.get("name&qu ...

  7. Python编程学习3:Python 对象引用和 del 删除引用

    面试遇到一个问题:如何删除一个python对象? 下面将介绍python的对象引用和 del删除引用 1.  首先介绍下python的对象引用 1)Python中不存在传值调用,一切传递的都是对象引用 ...

  8. python爬虫 django搜索修改更新数据_python应用:Django中更新多个对象数据与删除对象的方法...

    Python是一种解释型脚本语言,可以应用于以下领域: web和Internet开发 科学计算和统计 人工智能 教育 桌面界面开发 软件开发 后端开发 网络爬虫 更新多个对象 例如说我们现在想要将Ap ...

  9. python之⾯向对象基础

    python之⾯向对象基础 ⼀. 理解⾯向对象 ⾯向对象是⼀种抽象化的编程思想,很多编程语⾔中都有的⼀种思想. 例如:洗⾐服 思考:⼏种途径可以完成洗⾐服? 答: ⼿洗 和 机洗. ⼿洗:找盆 - 放 ...

  10. python del函数_python del函数是什么以及如何使用?

    这是关于Python里比较难得一个函数,甚至于章节不多,但是讲的内容却很多很多,大家对部分内容不知道有没有过了解--面向对象,而在这里主要用到的函数就是del,大家如果不知道的话,可以跟随小编一起来看 ...

最新文章

  1. 运动桁架下压力信号采集与处理
  2. Spring的核心思想,总结得非常好!
  3. mysql自定义变量
  4. linux剪贴板复制文件原理,linux剪贴板原理
  5. P2839 [国家集训队]middle
  6. SAP Spartacus Delivery Mode Component单元测试的Mock设计图
  7. 说不尽的蒙古人:推荐多兰的诗歌
  8. 条件随机场python实现_基于条件随机场的多标签分类
  9. OpenShift 4 Tekton (4) - 使用Workspaces为包含Maven Build的Pipeline提速
  10. Mysql一些重要配置参数的学习与整理(二)
  11. 从工作组向域管理转型该如何设置?
  12. 王码五笔98版forwin10_王码五笔输入法98版
  13. ubuntu 安装迅雷
  14. 从SLAM到视觉识别、VIO,大牛分享!
  15. 数据库原理及应用-李唯唯主编-实验3-2
  16. 1186: 零起点学算法93——改革春风吹满地(C)
  17. # 前端初学html+css+js+bootstrap4+jquery部分后的简单响应式静态网页编写(漫威主题个人博客)
  18. MySQL使用cmd输入show databases没有反应
  19. android基本功
  20. 分享154个ASP源码,总有一款适合您

热门文章

  1. Android框架揭秘-Zygote笔记
  2. 亚信科技外包_外包到亚信---转正疑问 - 菜鸟@大虾的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  3. php ddos攻击代码,PHP拦截网站DDOS攻击防御代码
  4. 整理总结:深入浅出统计学 —— 卡方分布
  5. session过期时间
  6. Bugku 社工——初步收集
  7. JDK官网下载与安装过程
  8. 小米路由器3开启frp
  9. dat文件导入cad画图步骤_怎么样给CAD文件加密?
  10. 高通WIFI模块QCA9377 调试