函數:
1. 函數一定存在返回值,沒返回值時返回None; 2. 函數內賦新值不會改變外部任何變量的值,這一點類似java;但是對於可變參數列表另當別論;
3. == 判斷相等性,值考慮空間裡面值的情況;is 同一性(等級更高,必然具有相等性)
4. 位置參數-> 關鍵字參數-> 收集參數:收集其他位的參數(一個*,函數內部接收到的是tuple,本來是tuple那麼前面加*,就成了這種可變參數):定義收集參數,使用位置參數— >同時收集參數:收集帶默認的參數構成字典(兩個**,函數內部接收到的是dict)—>收集參數逆運算—>定義和調用都使用,或者不使用結果沒區別
5. 作用域:vars(),返回不可見字典,全局作用域; 6. 每個函數存在自己的局部作用域; 函數內部聲明全局變量要用,global;
7. 遞歸程序設計,存在尾遞歸問題,返回函數調用本身沒有其他東西可以避免;lambda啟動匿名函數!!!
類:
1.類當中存在方法,它的第一個參數self,表示對象自身。它也是函數和方法的區別 2. 特性是可以外部訪問的。
3.定義私有函數:函數或者特性前面加2個下劃線;訪問方法:_類名__私有特性或者方法();
4.子類和超類的關系通過類似函數的方式傳遞;
5.issubclass 檢查字累和超類間關系;_bases__ 獲取基類信息;isinstance() 檢查對象是否是一個類實例;
6. 支持多重繼承;