你有多懂Python?看完这6道题就知道了

栏目: Python · 发布时间: 6年前

内容简介:Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。最近觉得 Python 太“简单了”,于是在老司机面前放肆了一把:“我觉得 Python 是世界上最简单的语言!”。于是老司机给我了一份满分 100 分的6道题,下面是题目的错误实录:检查一下下面的代码会报错的原因,并说出来?

Python在设计上坚持了清晰划一的风格,这使得 Python 成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。

最近觉得 Python 太“简单了”,于是在老司机面前放肆了一把:“我觉得 Python 是世界上最简单的语言!”。于是老司机给我了一份满分 100 分的6道题,下面是题目的错误实录:

1、你恐怕不会留意到的列表生成器

检查一下下面的代码会报错的原因,并说出来?

你有多懂Python?看完这6道题就知道了

列表生成器的正解答案如下:

你有多懂Python?看完这6道题就知道了

你有多懂Python?看完这6道题就知道了

或者答案可以是这样

你有多懂Python?看完这6道题就知道了

此内容的再补充

你有多懂Python?看完这6道题就知道了

你有多懂Python?看完这6道题就知道了

2、据说是最难得装饰器描述:按照实际情况来写一个类装饰器用来度量函数/方法运行时间,你看怎么实现?

你有多懂Python?看完这6道题就知道了

此类装饰器能够运行在普通函数上:

你有多懂Python?看完这6道题就知道了

此类装饰器运行在方法上会报错,为什么?

你有多懂Python?看完这6道题就知道了

如果坚持使用类装饰器,应该如何修改?

此问题的答案是

你有多懂Python?看完这6道题就知道了

你有多懂Python?看完这6道题就知道了

3、Python 调用机制看你会不会

描述:Python开发者们知道 __call__ 方法可以用来重载圆括号调用,其实问题根本不是这个。

你有多懂Python?看完这6道题就知道了

现在大家可以看到 a() 似乎等价于 a.__call__() ,好的,现在我们写出了如下的代码

你有多懂Python?看完这6道题就知道了

你有多懂Python?看完这6道题就知道了

你有多懂Python?看完这6道题就知道了

你有多懂Python?看完这6道题就知道了

4、描述符你会犯错吗?

描述:如果要写一个 Exam 类,其属性 math 为 [0,100] 的整数,若赋值时不在此范围内则抛出异常,你是否决定用描述符来实现这个需求。

你有多懂Python?看完这6道题就知道了

看起来一切正常。不过尝试说明是什么问题,改写 Grade 描述符试一下:

你有多懂Python?看完这6道题就知道了

不过这样会导致更大的问题,请问该怎么解决这个问题?

答案

你有多懂Python?看完这6道题就知道了

两种方法

第一种:

你有多懂Python?看完这6道题就知道了

你有多懂Python?看完这6道题就知道了

你有多懂Python?看完这6道题就知道了

5、Python 继承机制的坑

描述:

试求出以下代码的输出结果。

你有多懂Python?看完这6道题就知道了

答案:输出是 36 ,具体可以参考 New-style Classes , multiple-inheritance

6、Python 的特殊方法的使用模式

描述:写了一个通过重载 new 方法来实现单例模式的类。

你有多懂Python?看完这6道题就知道了

现在有一堆类要实现为单例模式,打算照着写一个元类,这样可以让代码复用:

你有多懂Python?看完这6道题就知道了

报错啊,下面这段代码能够捕获一切属性调用并打印参数

你有多懂Python?看完这6道题就知道了

试解释为什么给 getattribute 打补丁成功,而 new 打补丁失败。

如果坚持使用元类给 new 打补丁来实现单例模式,应该怎么修改?

答案:

  • 其实这是最气人的一点,类里的 __new__ 是一个 staticmethod 因此替换的时候必须以 staticmethod 进行替换。答案如下:

你有多懂Python?看完这6道题就知道了

结语:

Python这门语言还是博大精深的,如果你现在刚刚学不久就以为很好了,小心这里面其实有很多坑。


以上所述就是小编给大家介绍的《你有多懂Python?看完这6道题就知道了》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Data Mining

Data Mining

Jiawei Han、Micheline Kamber、Jian Pei / Morgan Kaufmann / 2011-7-6 / USD 74.95

The increasing volume of data in modern business and science calls for more complex and sophisticated tools. Although advances in data mining technology have made extensive data collection much easier......一起来看看 《Data Mining》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具