以下全部是在python3中適用。
錯誤一: 函式預設引數
python允許為函式的引數提供預設的可選值。但是它可能會導致一些易變預設值的混亂。例子:
我們希望每次呼叫myfun函式,list1都為預設空列表,其實python並不會輸出我們想要的結果。
原因:python的函式引數的預設值只會在函式定義的地方使用一次,即myfun()首次定義的時候,當呼叫myfun()時(不指定bar引數時)將繼續使用myfun()原本已經初始化的引數。
錯誤二: ==和is的區別
is : 判斷兩個物件是否為同一物件, 是通過id來判斷的; 當兩個基本型別資料(或元組)內容相同時, id會相同, 但並不代表a會隨b的改變而改變 。
== : 判斷兩個物件的內容是否相同, 是通過呼叫eq()來判斷的。
錯誤三: 列表賦值
t3 = t1: 這裡賦值的是指標,所以del t3 和del t1 是相同的概念。
t2 = t1[:] 這裡表示將t1從[0]到最後乙個元素全部賦值給t2。
錯誤四: 類繼承之變數賦值
類變數在內部當做字典來處理。
所以在上面的**中,由於c3中的var1變數沒有找到,它會向上找它的基類。換句話說,c3中沒有它自己的var1變數。因此,c3.var1事實上是c1.var1的引用。
c2中的var1被賦值,相當於給c2新建了個變數var1,通過檢視每個類的變數id可以看出。
python2轉python3常見錯誤
需要把一段py2的 轉為py3,執行後,遇到乙個錯誤就解決乙個錯誤,一般都會有替換方案。1.syntaxerror missing parentheses in call to print 所有 print x 更改為 print x 2.報錯 typeerror dict keys object ...
python3異常例項 Python3 錯誤和異常
錯誤和異常 程式執行時有兩種可以分辨的錯誤 syntax error 和 exception 按中文來說,就是語法錯誤和異常。語法錯誤 語法錯誤也就是解析錯誤,是我們最優可能遇到的錯誤。while true print hello world file line 1,in?while true pr...
Python3 錯誤型別記錄
1.syntaxerror return out side function 語法錯誤 return 不能在方法以外使用 解決辦法 將 return 放在方法體中使用 2.typeerror must be str not int 型別錯誤 必須是str 而不是int 解決辦法 使用 拼接的時候,必...