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 调用实际方法。
添加回答
举报