内容简介:Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。最近觉得 Python 太“简单了”,于是在老司机面前放肆了一把:“我觉得 Python 是世界上最简单的语言!”。于是老司机给我了一份满分 100 分的6道题,下面是题目的错误实录:检查一下下面的代码会报错的原因,并说出来?
Python在设计上坚持了清晰划一的风格,这使得 Python 成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。
最近觉得 Python 太“简单了”,于是在老司机面前放肆了一把:“我觉得 Python 是世界上最简单的语言!”。于是老司机给我了一份满分 100 分的6道题,下面是题目的错误实录:
1、你恐怕不会留意到的列表生成器
检查一下下面的代码会报错的原因,并说出来?
列表生成器的正解答案如下:
或者答案可以是这样
此内容的再补充
2、据说是最难得装饰器描述:按照实际情况来写一个类装饰器用来度量函数/方法运行时间,你看怎么实现?
此类装饰器能够运行在普通函数上:
此类装饰器运行在方法上会报错,为什么?
如果坚持使用类装饰器,应该如何修改?
此问题的答案是
3、Python 调用机制看你会不会
描述:Python开发者们知道 __call__ 方法可以用来重载圆括号调用,其实问题根本不是这个。
现在大家可以看到 a() 似乎等价于 a.__call__() ,好的,现在我们写出了如下的代码
4、描述符你会犯错吗?
描述:如果要写一个 Exam 类,其属性 math 为 [0,100] 的整数,若赋值时不在此范围内则抛出异常,你是否决定用描述符来实现这个需求。
看起来一切正常。不过尝试说明是什么问题,改写 Grade 描述符试一下:
不过这样会导致更大的问题,请问该怎么解决这个问题?
答案
两种方法
第一种:
5、Python 继承机制的坑
描述:
试求出以下代码的输出结果。
答案:输出是 36 ,具体可以参考 New-style Classes , multiple-inheritance
6、Python 的特殊方法的使用模式
描述:写了一个通过重载 new 方法来实现单例模式的类。
现在有一堆类要实现为单例模式,打算照着写一个元类,这样可以让代码复用:
报错啊,下面这段代码能够捕获一切属性调用并打印参数
试解释为什么给 getattribute 打补丁成功,而 new 打补丁失败。
如果坚持使用元类给 new 打补丁来实现单例模式,应该怎么修改?
答案:
- 其实这是最气人的一点,类里的 __new__ 是一个 staticmethod 因此替换的时候必须以 staticmethod 进行替换。答案如下:
结语:
Python这门语言还是博大精深的,如果你现在刚刚学不久就以为很好了,小心这里面其实有很多坑。
以上所述就是小编给大家介绍的《你有多懂Python?看完这6道题就知道了》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 谈谈大家想知道的、不知道的SDN
- 你知道和你不知道的冒泡排序
- JS数组中那些你知道或不知道的
- 掌握Python列表理解需要知道的9件事,你知道吗?
- 你所知道或不知道的CSS content属性
- 前端程序员不知道的14个JavaScript调试技巧,你知道几个?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript RIA开发实战
(英)Dennis Odell / 张立浩 / 清华大学出版社 / 2010 / 48.00元
本书介绍如何采用最合理的方式为RIA编写可靠的、易于维护的HTML、CSS和JavaScript代码,以及如何使用Ajax技术在后台实现浏览器与Web服务器的动态通信。本书将介绍您在构建Web应用程序时可能遇到的性能限制,以及如何以最佳的方式克服这些限制。此外,本书提供的提示可以使用户界面响应更加灵敏。 本书也将介绍如何通过添加使用自定义字体的印刷标题、多媒体回放组件、自定义窗体控件和动态绘......一起来看看 《JavaScript RIA开发实战》 这本书的介绍吧!