Не проходит тест на LeetCode. А в редакторе VSC проходит

Есть задача 1. Two Sum на LeetCode. Я написал её в редакторе VSCode. В нём всё проходит. После переноса в литкод сначала выпадала ошибка: NameError: name 'Solution' is not defined... После чего добавил class Solution. Стала выпадать ошибка: TypeError: Solution.twosome() takes 2 positional arguments but 3 were given... Затем добавил self параметр при объявлении функции. Тесты прошли, но вот беда! В VSCodе такой код не работает, так как требуется ещё один аргумент для функции, что логично принципе. Так вот вопрос: Как это работает? Эта какая-то специальная система проверки кода на LeetCode? Кто-нибудь сможет объяснить? Я просто новичок в программировании, если что прошу прощения за глупые вопросы)

class Solution:
    def twoSum(array: list, target: int) -> list:
        for index, num in enumerate(array):
            if array[index] + array[index + 1] == target:
                return [index, index + 1]

Ответы (1 шт):

Автор решения: CrazyElf

Если я правильно всё понял, то просто на сайте вызывают этот метод от экземпляра класса, а вы его пытаетесь вызывать от самого класса. Когда вызывают от экземпляра, то передаётся дополнительный параметр, в котором содержится ссылка на собственно экземпляр класса. Который обычно и называется self в питоне - такая договорённость. Таким образом, скорее всего вам нужно сделать так, чтобы и локально всё выполнялось корректно:

class Solution:
    def twoSum(self, array: list, target: int) -> list:
               ^^^^ <- обратите внимание
        for index, num in enumerate(array):
            if array[index] + array[index + 1] == target:
                return [index, index + 1]

solution = Solution()
result = solution.twoSum([1,2,3,4,5], 7)
print(result)

То есть нужно создать экземпляр класса и вызывать метод twoSum уже от него, а не прямо от самого класса.

→ Ссылка