python作用域问题
有一句话很重要,要说在前面;类型是属于对象的,并不是属于变量;
而在python这门语言中,有一种说法叫做“鸭子类型”:“当看到一直鸟走起来像鸭子,游泳起来像鸭子 ,叫起来也像鸭子 , 那么这只鸟就可以被称为鸭子。”所以我们并不关心对象是什么类型,到底是不是鸭子,只关心行为;比如在python中,有很多file-like的东西,比如StringIO,GzipFile,socket。它们有很多相同的方法,我们把它们当作文件使用。又比如list.extend()方法中,我们并不关心它的参数是不是list,只要它是可迭代的,所以它的参数可以是list/tuple/dict/字符串/生成器等.鸭子类型在动态语言中经常使用,非常灵活,