我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python开发的高级技巧分别是哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python开发的高级技巧分别是哪些

Python开发的高级技巧分别是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

我列出几个Python高级技巧:

1. contextmanager

写Python代码的时候经常将一系列操作放在一个语句块中,Python  2.5加入了with语法,实现上下文管理功能,这让代码的可读性更强并且错误更少。最常见的例子就是open,如果不使用with,使用open会是这样:

Python开发的高级技巧分别是哪些

如果使用with,可以简化为两行:

Python开发的高级技巧分别是哪些

在执行完缩进的代码块后会自动关闭文件。创建上下文管理器实际就是创建一个类,添加__enter__和__exit__方法。看看如何实现open的上下文管理功能:

Python开发的高级技巧分别是哪些

自定义上下文管理器确实很方便,但是Python标准库还提供了更易用的上下文管理器工具模块contextlib,它是通过生成器实现的,我们不必再创建类以及__enter__和__exit__这两个特殊的方法:

Python开发的高级技巧分别是哪些

yield关键词把上下文分割成两部分:yield之前就是__init__中的代码块;yield之后其实就是__exit__中的代码块;yield生成的值会绑定到with语句as子句中的变量(如果没有生成,也就没有as字句)。

2. total_ordering  。对比自定义对象需要添加__lt__、__le__、__gt__、__ge__和__eq__等方法,如果使用total_ordering,只需要定义__eq__以及__lt__、__le__、__gt__、__ge__四种之一就可以了:

Python开发的高级技巧分别是哪些

3. 有时候BUG隐藏的太深,需要对上下文都有清晰的展示来帮助判断。用pdb调试不方便,用print不直观。可以使用如下函数获取当前调用栈:

Python开发的高级技巧分别是哪些

4. inspect 。有时候我们想查看一下对象的一些信息或者做类型检查,也就是自省(检查某些事物以确定它是什么、它知道什么以及它能做什么):

Python开发的高级技巧分别是哪些

它在实际工作中还能有什么意义,通过自省获取方法的参数,从而设置缓存的键,如 flask-cache(  https://github.com/thadeusb/flask-cache/blob/master/flask_cache/__init__.py#L418)和  douban-mc(https://github.com/douban/douban-mc/blob/master/douban/mc/decorator.py#L39)

5. Mixin模式 。 

假如我们想通过python内置类型Dict的方式来存放数据,编写的类可以混入DictMixin就好了:

Python开发的高级技巧分别是哪些

PS: 如果你想兼容Python 2.6以下和Python 3,可以使用collections.MutableMapping:

Python开发的高级技巧分别是哪些

但是MutableMapping需要额外实现__iter__和__len__。

它继承了Iterable和Sized,而Iterable中通过abstractmethod要求你必须定义__iter__方法,Sized中要求你必须定义__len__方法,否则就会提示:

TypeError: Can't instantiate abstract class MyDict with abstract metho

ds __iter__, __len__

看完上述内容,你们掌握Python开发的高级技巧分别是哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python开发的高级技巧分别是哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python开发的高级技巧分别是哪些

Python开发的高级技巧分别是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我列出几个Python高级技巧:1. contextmanager写Python代码的时候经常
2023-06-17

Python开发中有哪些高级技巧

这期内容当中小编将会给大家带来有关Python开发中有哪些高级技巧,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python 开发中有哪些高级技巧?这是知乎上一个问题,我总结了一些常见的技巧在这里,可能谈
2023-06-16

有哪些高级的Python技巧

本篇内容主要讲解“有哪些高级的Python技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些高级的Python技巧”吧!1.通过多个键值将对象进行排序假设要对以下字典列表进行排序:peop
2023-06-16

8个Python高效数据分析的技巧分别是哪些

这期内容当中小编将会给大家带来有关8个Python高效数据分析的技巧分别是哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。不管是参加Kaggle比赛,还是开发一个深度学习应用,***步总是数据分析。介绍
2023-06-17

Python开发的技巧有哪些

这篇文章主要讲解了“Python开发的技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python开发的技巧有哪些”吧!1. 列表推导式你有一个list:bag = [1, 2, 3
2023-06-02

有哪些Python开发技巧

这篇文章主要介绍“有哪些Python开发技巧”,在日常操作中,相信很多人在有哪些Python开发技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Python开发技巧”的疑惑有所帮助!接下来,请跟着小编
2023-06-16

Python有哪些开发技巧

这篇文章主要讲解了“Python有哪些开发技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python有哪些开发技巧”吧! 1. 如何在运行状态查看源代码?查看函数的源代码,我们通常会使用
2023-06-16

11个Python Pandas小技巧分别是哪些

今天就跟大家聊聊有关11个Python Pandas小技巧分别是哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。或许本文中的某些命令你早已知晓,只是没意识到它还有这种打开方式。Pa
2023-06-16

18个Python高效编程技巧分别有哪些

这篇文章给大家介绍18个Python高效编程技巧分别有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。初识Python语言,觉得python满足了我上学时候对编程语言的所有要求。python语言的高效编程技巧让我们这
2023-06-16

Python开发环境的技巧有哪些

这篇文章主要介绍“Python开发环境的技巧有哪些”,在日常操作中,相信很多人在Python开发环境的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python开发环境的技巧有哪些”的疑惑有所帮助!
2023-06-16

有哪些高级的Python列表使用技巧

本篇内容介绍了“有哪些高级的Python列表使用技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、使用Python过滤列表1.使用Fil
2023-06-16

python sort、sorted高级排序技巧有哪些

今天小编给大家分享一下python sort、sorted高级排序技巧有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。P
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录