在没有多重继承的情况下,向对象发出一个消息,如果对象没有对应的方法,那么向上(父类)搜索的顺序是非常清晰的。如果向上追溯到object类(所有类的父类)都没有找到对应的方法,那么将会引发AttributeError异常。
鸭子类型是动态类型语言判断一个对象是不是某种类型时使用的方法,也叫做鸭子判定法。简单的说,鸭子类型是指判断一只鸟是不是鸭子,我们只关心它游泳像不像鸭子、叫起来像不像鸭子、走路像不像鸭子就足够了。
列表中有1000000个元素,取值范围是[1000, 10000),设计一个函数找出列表中的重复元素。 def find_dup(items: list): dups = [0] * 9000 for item in items: dups[item - 1000] += 1 for idx, val in enumerate(dups): if val > 1: yield idx + 1000
用五个线程,将1到100的整数累加到一个初始值为0的变量上,线程执行结束后打印累加的结果,确保结果是5050。
Python内置了交互式调试器,可以通过引入pdb模块,并调用set_trace()函数来触发调试器,让代码停在指定的位置,然后通过输入局部变量的名称来打印它们的值,或通过locals()函数来列出所有的局部变量,当然还可以引入模块、创建新对象、调用help()函数获取帮助等。