問題Missing 1 required positional argument引出的關於python例項化的經驗教訓
阿新 • • 發佈:2018-12-09
class Solution: def mySqrt(self, x): """ :type x: int :rtype: int """ l = 0 r = x y = l + (l + r) / 2 if x <= 1: return x else: while l <= r: if y * y == x: return y elif y * y > x: r = r - 1 else: l = l + 1 y = (l + r) // 2 return y if __name__ == '__main__': a = 16 mm = Solution() # TODO 1.建立物件時,只需使用類名,且類名後面要帶括號! ss = mm.mySqrt(a) # TODO 2.然後使用建立的物件呼叫該類的方法,並把呼叫該方法得到的結果賦值給變數ss print(mm, ss) """ 記錄犯的錯誤,不要再重蹈覆轍! 1.建立物件時候寫成了 mm = Solution(a),執行就會提示 TypeError: mySqrt() missing 1 required positional argument: 'x' 2.另外,python例項化(建立物件)時寫成mm = Solution也不可以,不帶括號,因為不加括號就不是啟動例項,這個和設定一個別名是一樣的 (說白了 加括號就是呼叫init函式 不加括號就是不呼叫init函式,不呼叫init函式就無法使用引數吧。這種描述可能不夠準確,歡迎大神指正!) """
記錄犯的錯誤,不要再重蹈覆轍! 1.建立物件時候寫成了 mm = Solution(a),執行就會提示 TypeError: mySqrt() missing 1 required positional argument: 'x' 2.另外,python例項化(建立物件)時寫成mm = Solution也不可以,不帶括號,因為不加括號就不是啟動例項,這個和設定一個別名是一樣的 (說白了 加括號就是呼叫init函式 不加括號就是不呼叫init函式,不呼叫init函式就無法使用引數吧。這種描述可能不夠準確,歡迎大神指正!)