首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么递归函数返回None

问: 有一个调用自己函数: def get_input(): my_var = input('Enter "a" or "b": ') if my_var !...: Type "a" or "b": a got input: a 但是,如果输入别的东西,然后输入 "a" 或 "b",我会得到这样结果: Type "a" or "b": purple You...Type "a" or "b": a got input: None 不明白为什么 get_input() 函数返回是 None,因为它本应只返回 my_var。这个 None 是从哪里来?...该如何修复函数呢? 答: 它返回 None 是因为当你递归调用它时: if my_var != "a" and my_var !...因此,尽管递归确实发生了,但返回值却被丢弃了,然后你会从函数末尾退出。在函数末尾退出意味着 Python 会隐式地返回 None,就像下面这样: >>> def f(x): ...

9710

「译」谁动了按钮

今天是周末,给各位分享一篇设计相关文章。对用户来说,产品“重设计”意味着自己需要付出一定成本进行“重学习”,因此大部分用户更愿意安于现状。...image.png 为什么人类会从本能上抵触变化呢?大胆推测有两个原因:其一,环境由熟悉转向陌生,意味着在危急时刻将很难做到因地制宜;其二,要想适应新环境,必须克服惯性并付出一定努力。...人们需要一定时间才能完全理解并接受变化本身意义。作为数字产品开发者,我们需要帮助用户尽可能快速且平稳地跨越抵触变化鸿沟。...最近,参与了 Outlook 在移动端浏览器体验上重设计工作,在本文中,我会整理出我们微软产品团队在此次重设计中采取措施,同时也进行回顾性学习。 由于工作需要,用户会使用我们产品。...image.png 第 2 阶段: 变化之后 与建立正确引导过程一样重要,是在后续过程中对引导效果观察。从总体上来说,低数量负面反馈是一个不错迹象。 继续往下深挖对我们也是有帮助

35610
您找到你想要的搜索结果了吗?
是的
没有找到

JSON Schema那些事

哈喽,是 树酱。...今天聊一聊关于我跟Json schema一些交集,顺便给大家重新梳理下今日这个主角概念及当下主要一些应用场景 1.什么是JSON Schema 相信前端童鞋,对JSON应该都很熟悉。...JSON (JavaScript Object Notation) 缩写,JSON 是一种数据格式,具有简洁、可读性高、支持广泛特点JSON。通过JSON 我们可以灵活地来表示任意复杂数据结构。...你看到上方JSON Schema例子,很明显数据类型定义可以方便我们用来做数据校验 结合上方demo,我们通过这个在线校验工具来演示一波 上图,JSON报出了不合法提示,为什么呢?...是因为在左侧定义birthday字段需要为date格式,而我们右侧定义JSON数据中字段数值并不是date格式,所以校验出异常 再补充一个:前后端先把数据接口约定好,等后端把接口输出完毕,直接用JSON

1.4K10

为什么BERT不行?

当然了,bad case分析这块也聊了很多,多分析能发现其中端倪,知道模型需要什么,该怎么处理,再放一遍在这里,希望能好好阅读。...至于训练集,首先要说是训练集内部问题,其实还是数据数量和质量问题: 学习资料和练习题要足够,才能让模型学得会,学得好。 数据分布问题,不能偏科,各个类型数据最好都能覆盖。...这里背后逻辑可以参考这篇文章: 心法利器[45] | 模型需要信息提供够了吗 训练问题 针对训练问题,其实也就是一个经验问题了,多弄其实问题就会小很多,大家可以多去看各个论文使用超参,一般调差不多基本都不会有的...首先要做基线,一般是考虑折腾这个CLS,而在下游加插件时候,也要注意不能让BERT模型被学走,注意调整学习率、trainable,同时也可以结合MLM任务来维持模型稳定,平衡BERT原有的基础知识与实际场景问题差距...而文章本身输出并非是按照这个思路走,而是从一些大家经常问点深入来讨论,希望能从角度和风格来思考和回答问题。

1.2K20

为什么要创建一个不能被实例化

但如果有一天,你发现写了这样一个类: class People: def say(self): print(f'叫做:{self.name}') def __new...__(self): raise Exception('不能实例化这个类') kingname = People() kingname.say() 一旦初始化就会报错,如下图所示:...一个不能被初始化类,有什么用? 这就要引入我们今天讨论一种设计模式——混入(Mixins)。 Python 由于多继承原因,可能会出现钻石继承[1]又叫菱形继承。...显然,这样写会报错,因为两个类实例是不能比较大小: 但在现实生活中,当我们说 某人比另一个人大时,实际上是指某人年龄比另一人年龄大。...混入: 不能包含状态(实例变量)。 包含一个或多个非抽象方法。 参考资料 [1]钻石继承: https://en.wikipedia.org/wiki/Multiple_inheritance

3.4K10

对不起,健康码不能给你

题图摄于广州番禺 本文记录一次关于隐私保护事情。 近日,去了趟某运营商营业厅,开通一个新手机号。入门时,扫了场所码,显示是绿码。...营业员在帮我办理业务时,除了拍照身份证件外,还说要留存健康码和行程码。...这个要求就有点奇怪了,尽管我两个码都是正常,但作为从事隐私信息保护工作,对涉及自己隐私数据事情,觉得还是要和他掰斥一下。 首先,问他为什么需要留存两码?...因为进营业厅时候扫过各种健康码于是给他扣了个大帽子:过度防疫(另一个类似的帽子是“层层加码”)。...因为清楚地记得,行程码在使用时,用户只授权了用于防疫目的。至于其他目的,对不起,没授权你用,就算你理由多么冠冕堂皇,也不能随便给你。 至于他们留存健康码,更连个正当理由都没有。

37530

为什么要写自己框架?

曾几何时,觉得很兴奋,在如此短时间内就可以做到这样高度,让十分开心。开发出内容也完全符合校内应用需求。变成了一个别人眼中“大师”。 但事情并没有往想象地方发展。...但当有一天在讲授开发经验时候,当我当着大家面真的静下心来写需要展示一个类时候,以前用了这么多框架,发现在这么多人面前已经几乎写不出来一个正确类了!!...于是又开始新一轮学习,看大量书籍,有一天重新打开Yii框架在当时看起来很难理解代码时候发现:居然有点明白它工作原理,知道整体架构了!...如今框架图.png 之后工作就是让框架更加丰满,不敢说比得上一些主流框架,说实话根本不能够和他们相比,无论从结构、思考还是思考上,编出主流框架他们才是真正大师。...js框架 最后说一下认为好处: 1、对整体架构思考 2、提高自己创造力 3、提高自己独立思考能力 4、提高自己阅读别人代码能力 5、用到和认识了大量编程语言内置函数 下面是一点小建议:

1.3K20

为什么Redis这么“慢”?

如果你服务请求量并不大,但 Redis 实例 CPU 使用率很高,很有可能是使用了复杂度高命令导致。...同样,当删除这个 Key 数据时,释放内存也会耗时比较久。 你需要检查你业务代码,是否存在写入大 Key 情况,需要评估写入数据量大小,业务层应该避免一个 Key 存入过大数据量。...所以在部署 Redis 进程时,如果需要开启 RDB 和 AOF 重写机制,一定不能进行 CPU 绑定操作!...下面就针对这两块,分享一下认为比较合理 Redis 使用和运维方法,不一定最全面,也可能与你使用 Redis 方法不同,但以下这些方法都是在踩坑之后总结实际经验,供你参考。...总结 以上就是在使用 Redis 和开发 Redis 相关中间件时,总结出来 Redis 推荐实践方法,以上提出这些方面,都或多或少在实际使用中遇到过。

3.6K10

Python人脸识别眼里只有你

人脸识别总感觉特别高深,但是因为Python中已经有很多前辈写好了一些库,可以直接调用,大大降低了人脸识别的难度。...之前在网上看到陈晓眼里只有陈妍希照片,特别喜欢,想自己用python中dlib人脸识别库实现这个功能。 所以到网上找了下资料,成功用python实现了这个功能,现在把实现方法分享给大家。...三、标记人脸中68个点位置 用一张肖战硬照,标记五官中68个点位置,方便大家找到眼睛位置。...根据点位置和计算好眼球大小,把一个人照片填充到另一个人眼睛中去,营造眼里只有你效果。...p.save("new_black_pg_img.png") 如需函数API,请参考文末参考文献中第一篇文章。

49330

用编程模拟疫情传播来告诉你: 为什么现在你还不能出门

看完视频你就明白为什么不能出门了,千万不要放松警惕!(@Ele实验室 ) 在家憋了一段时间的人们,耐心也在一点一点消磨中。很多人已经忍不住开始想蠢蠢欲动了。...他们总有一套自己理论:我们城市才一点确诊病人,而且在距离我们很远地方,就出去一会儿,哪有那么巧合,就感染上了。没事儿!大街上都没人,戴着口罩又没事。...疫情防控工作防控点或者是成功与否主要在于感染人员是否戴口罩、医院里隔离床位(或者是自我隔离位)、人口流动。...因此通过这一次疫情防控,为了你、、他,请以后感冒发烧生病之后,能够带个口罩,减少传染率。因为不知道你体内这一个病毒威力如何。 ?...因此一个疫情发生,必须依靠强大有力政府比如中国,和广大医院医生护士等伟大工作者们努力,所以平时请尽量尊重他们这个职业。 ?

2.1K10

为什么HibernateDaoSupport没有注入SessionFactory

前言 很早之前,就打算写这一篇文章了(其实有很多源码分析文章打算写,但是自己太拖延了导致很多文章搁浅了)。为什么要写这一文章呢?...事情缘由是同事在SpringBoot项目中有一个A类继承HibernateDaoSupport,但是程序运行总是抛出没有成功注入SessionFactory错误,后来debug Spring源码解决了这个问题...这个错误原因是A类RootBeanDefinition中autowireMode值为0,在AbstractAutowireCapableBeanFactory类中populateBean方法中没有执行到...(这里维护是bean和bean依赖对象之间关系,也就是MyBaseDao --》 MySessionFactory)中。...这里BeanDefinition和populateBean方法中RootBeanDefinition是不一样

3K10

为什么喜欢JavaScriptOptional Chaining

从 ES2015 开始,对代码影响最多功能是解构、箭头函数、类和模块系统。 截至 2019 年 8 月,一项新提案 optional chaining 达到了第3阶段,这将是一个很好改进。...通常,你在以下情况下处理此类对象: 获取远程 JSON 数据 使用配置对象 具有 optional 属性 虽然这为对象提供了支持不同结构数据灵活性,但是在访问这些对象属性时会增加复杂性。...通过减少 2 行代码简化了 getDirector() 函数。这就是喜欢 optional chaining 原因。...接下来任务是编写一个返回电影主角名字函数。...为什么喜欢它? 喜欢 optional chaining 运算符,因为它允许从嵌套对象轻松访问属性。它可以减少通过编写样板文件来验证来自访问器链每个属性访问器上无效值工作。

1.1K30

为什么 WordPress 网站被封了?

在此基础上,我们可以基于数据万象 CI 一站式内容审核服务,对存储在 COS 中图片、视频、语音、文档等静态资源进行多场景审核,从而有效地识别并冻结色情低俗、违法违规、恶心反感等违禁内容,防患于未然...,这样就再也不用担心你网站突然被封啦~ 静态资源审核 静态资源审核可以对媒体库中图片、视频、音频、文档进行审核,识别并冻结涉黄、广告、恶心反感等违法违规内容,避免违法违规内容在网站上传播,防范封禁风险...上述两种审核配置都支持用户自定义审核策略,通过设置自定义策略可以定制涉黄涉政等个性化场景审核;审核后支持按照指定分数范围进行冻结,智能机审+精确人审方式帮你有效避免违法内容传播;审核结果可以通过配置回调链接返回给用户...网页审核支持对网页文件进行自动检测,从 OCR 文本识别、物体检测(实体、广告台标、二维码等)、图像识别几个维度,通过深度学习技术,识别网页中违规内容。...查询审核任务:通过发起任务时获取到任务ID,直接查询对应任务ID网页审核结果。审核结果中包含了审核是否成功、网页审核处理建议、违规图片和文字等。

3.4K50

是如何破解亚马逊一键购物按钮

通常情况下,需要打开按钮然后进行逆向工作。但是作者表示自己作为一个父亲,没有那么多时间来解决燃眉之急。 于是采取比较懒惰路线,需要编写一个程序,然后嗅探无线网络同时记录按钮数据信息。...在这里发现了一个问题,可能处于节能目的考虑,再你不用按钮时候,按钮是处于关闭状态。 仅仅当你打开它,它才会工作,这就意味着每一次都需要重新连接你无线网络,那么这就相对简单一些了。...这样就可以通过按下按钮向无线网络发出信息:“嗨!名字是[MAC地址]”。好吧,现在我们已经了解问题了。...修改后程序程序运行时终端输出。 3.将数据记录到谷歌电子表格 现在需要做就是每次按下一个按钮就记录一次数据,用到了一个工具来完成这一步。...访问 Cloudstitch,然后创建项目,你就会在电子表格中每一行都会出现一个链接,这样就可以记录按下按钮数据信息了。

1.3K60
领券