当前位置: 首页 > 科技观察

你对Python了解多少?看完这6个问题,你就会知道

时间:2023-03-19 16:40:37 科技观察

Python在设计上坚持清晰统一的风格,这使得Python成为一门易读、易维护的语言,受到广大用户的欢迎,用途广泛。设计者在开发时的一般指导思想是,对于一个具体的问题,只要有一个最优的方法来解决就可以了。最近觉得Python太“简单”了,就在老司机面前放肆地说:“我觉得Python是世界上最简单的语言!”。于是老司机给了我一道6题满分100分的题,以下是题的错误记录:1.你可能没有注意到listgenerator。查看下面代码会报错的原因,并告诉它?List生成器的肯定答案如下:或者答案可以是这样的。本内容补充2.据说是最难得的装饰器说明:根据实际情况,写一个类装饰器来衡量函数/方法的运行时间。你怎么看?ThisClassdecoratorscanrunonordinaryfunctions:此类装饰器在方法上运行时会报错。为什么?如果你坚持使用类装饰器,你应该如何修改它们?这个问题的答案是3.你能描述一下Python的调用机制吗?:Python开发者都知道__call__方法可以用来重载括号调用,但问题根本不是这个。现在可以看到a()好像等同于a.__call__(),ok,现在我们已经写好了下面的代码4、Descriptor能不能写错?说明:如果要写一个Exam类,它的属性math是[0,100]的整数。如果赋值不在这个范围内,就会抛出异常。您决定使用描述符来满足此要求吗?一切看起来都很好。但是尝试解释问题是什么,尝试重写Gradedescriptor:但这会导致更大的问题,如何解决这个问题?有两种方式可以回答第一种:5.Python继承机制的坑描述:尝试找到以下代码的输出显示。答:输出36,具体可以参考New-styleClasses,multiple-inheritance6,Python特殊方法的使用方式说明:我写了一个类,通过重载new方法实现了单例模式。现在有一堆类需要实现成单例模式,打算相应的写一个元类,这样代码可以复用:报错,下面的代码可以捕获所有的属性调用和打印参数。尝试解释一下为什么patchtogetattribute成功了。新补丁失败了。如果硬要用元类打补丁new来实现单例模式,应该怎么修改呢?答:其实这是最烦人的一点。类中的__new__是staticmethod,所以必须换成staticmethod。答案如下:结语:Python这门语言还是博大精深的。如果刚学了觉得很好,小心里面其实有很多坑。