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

德州网站怎样建设深圳外包网站

德州网站怎样建设,深圳外包网站,南京学网站建设,wordpress页面跳转实际上#xff0c;在日常的工作中#xff0c;我们很多需求#xff0c;无论是常见的、还是不常见的#xff0c;Python 都为我们提供了一些独特的解决方案#xff0c;既不需要自己造轮子#xff0c;也不需要引入新的依赖(引入新的依赖势必会增加项目的复杂度)。但是 Python…实际上在日常的工作中我们很多需求无论是常见的、还是不常见的Python 都为我们提供了一些独特的解决方案既不需要自己造轮子也不需要引入新的依赖(引入新的依赖势必会增加项目的复杂度)。但是 Python 有太多功能和特性被我们忽略了导致我们在遇到问题的时候没法第一时间作出良好的决策。所以干脆来一起扫清这些被我们忽略的 Python 死角。装饰器的妙用我们经常会想完成一些注册调用的功能比如我们有四个函数现在我们想将这四个函数和 、-、*、/ 四个操作符绑定那么我们该怎么做可能我们第一反应是这样但这样写起来有一个很大的问题就是太不美观了。因为直接对于 dict 的操作从实际上来讲可维护性是很差的那么我们这个地方应该怎么做在改进这段代码之前我们首先要明确 Python 中一个很重要的概念即函数/方法是First Class Member 。用不精确的话来讲就是函数/方法可以作为参数被传递、被使用。举个例子大家可以看到我们将 print_func 这个函数作为参数传递给 execute 函数并被调用。那么我们来改造下之前的代码好了大家看看目前整体代码的可读性以及可维护性是不是改了很多但是我们现在的问题在于每次都需要在单独调用一次 register_operator 函数这样也太烦了吧要不要再改进一下要得。我们可以用装饰器来改进一下。首先看一个最简单的装饰器例子我们能看到这段函数的意义是计算函数的执行时间。那么这个原理是什么实际上装饰器是一个语法糖具体可以参见 PEP318 Decorators for Functions and Methods。简而言之实际上是 Python 替我们做了一个替换过程。以上面的例子为例这个替换过程就是 addexecute(add) 。好了我们就用这个知识点来改进下之前的代码这样我们这段代码的注册过程是不是就显得更优雅了嗯是的实际上 Python 中有很多特性会帮助我们的代码更简洁更优美。接下来这个例子很可能帮我们减轻工作量。聊聊 OrderedDictdict 是我们经常使用的一种数据解构。但是在 Python 3.6 之前 dict 都是无序的即我插入的顺序和数据在 dict 中存放的顺序并无关联(笔者注Python 3.6 dict 有序只是新版实现的顺带产物Python 3.7 正式作为 feature 被固定下来)。但是很多时候比如在验签等场景我们需要保证 dict 数据存放顺序和我们插入顺序是一致的。那么我们该怎么办老板有需求下来了我们肯定不能告诉老板这个需求没法做。那我们就自己实现一个 ordereddict 吧。于是想了想写了如下的代码通过额外维护一个 list 来维护 key 插入的顺序。这段代码看似完成了我们的需求但是实则存在很大问题。大家可以猜猜问题在哪321揭晓答案这段代码利用 list 来保证 key 的有序性在删除的时候 list 的删除操作是一个时间复杂度 O(n) 的操作。换句话说我们的删除操作随着内部数据的增多所需的删除时间也变得越长。这对于某些性能敏感的场景是无法接受的。那要怎么办呢事实上Python 在很早之前就已经内置了有序字典即很多人可能都用过的 collections.OrderedDict 。在 OrderedDict 中 Python 维护了一个双向链表解构来保证插入的有序性如下图所示在最左侧维护一个卫兵节点卫兵节点的 next 指针恒指向于数据中最后插入的节点。那么插入新的数据时我们将新的数据插入到卫兵节点之后从而达成维护插入顺序的目的。在删除的时候通过额外维护的一个字典找到待删除的 key 所对应的节点。这个操作是 O(1) 的复杂度然后大家都知道双向链表删除一个节点的时间复杂度也是 O(1) 。通过这样保证我们在即便有大量数据的情况下也能保证相应的性能。好了我们按照这个思路来做一个最简单的实现这只是一个 OrderedDict 的简化版如果想完成一个完整的 OrderedDict 还有很多很多的 corner case 要去处理。不过现在我们可以使用内置的数据结构去完成我们需求。怎么样是不是有了一种幸福的感觉喜欢小编文章的可以点个赞关注小编哦小编每天都会给大家更新文章。我自己是一名从事了多年的Python老程序员小编为大家准备了新出的python编程学习资料免费分享给大家如果你也想学习Python那么帮忙转发一下然后再关注小编后私信“01”可以得到我整理的这些Python资料了(私信方法点击我头像进我主页有个上面有个私信按钮)。
http://www.pierceye.com/news/636021/

相关文章:

  • 贵阳网站建设钟鼎网络江门网站建设套餐
  • 263企业邮箱自动回复seo技巧与技术
  • 昆明响应式网站怎么做最火的视频网站
  • 中山微信网站西安网站建设麦欧科技
  • 西平县住房城乡建设局网站网站备案 教程
  • 怎么用ps做简单网站推广码怎么输入
  • 跨越速运网站谁做的桂林网站建设培训
  • 荥阳网站建设多少钱做网站 提要求
  • 大学生个体创业的网站建设网页素材及网站架构制作
  • 网站开发前端框架和后端框架做长海报的网站
  • 柳州网站制作建一个网站怎么赚钱
  • 建网站支持设备是什么意思wordpress 默认密码
  • 找人做效果图那个网站网站开发语言 asp
  • 山东省山东省建设厅网站首页百度助手免费下载
  • 北京网站建设认百度非企推广开户
  • 厦门模板建站系统网站icp备案信息注册
  • 网站建设维护人员多语言网站开发
  • 网站开发 论文大连微信公众号开发公司
  • 珠海网站建设王道下拉惠烟台网站制作专业
  • 用php做网站要用构架吗ios开发者模式
  • 如何实现一个制作好的网站wordpress cdn
  • 成都网站商城建设深圳制作网站制作公司哪家好
  • 谁可以做网站开发公司空置房拨款合同
  • seo网站管理网站建设信(信科网络)
  • 做网站需要哪些东西网站设计报价单模板
  • 合肥家居网站建设怎么样网站建设与维护中
  • 淘宝app网站建设做网页设计可以参考哪些网站
  • 合作建设网站协议江门seo计费管理
  • 企业管理网站模板保定网站制作设计哪个公司好
  • 物流网站查询优秀设计赏析网站