2 回答

TA貢獻1856條經驗 獲得超5個贊
你不能那樣使用它,因為你的類有默認的 __init__(你的類默認得到,因為你沒有定義它),并且它不接受任何參數,除非你定義它來接受它。
使用以下內容:
sol = Solution()
sorted_stuff = sol.twoSum(nums, 9)
print(sorted_stuff)

TA貢獻1824條經驗 獲得超6個贊
您__init__()在定義解決方案類時錯過了該方法。它并不總是強制性的,但由于您是通過Solution()使用一些參數調用來創建類的實例,因此__init__必須實現該方法。所以實現可以是:
_nums = [2, 7, 11, 15]
class Solution(object):
def __init(nums, target):
self.nums = nums
self.target = target
def twoSum(self, nums=None, target=None):
if not nums:
nums = self.nums
if not target:
target= self.target
nums_1 = nums
for i in range(len(nums)):
for a in range(len(nums_1)):
if i != a:
if nums[i] + nums_1[a] == target:
return(sorted([i, a]))
s = Solution(_nums,9)
s.twoSum()
你也可以這樣做:
s = Solution()
s.twoSum(_nums,9)
這使您可以自由地在類初始化期間定義 args 或使用 args 調用實際方法。
添加回答
舉報