self и передача аргументов в функцию python
Вот есть такой код:
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
dummy = cur = ListNode(0)
carry = 0
while l1 or l2 or carry:
if l1:
carry += l1.val
l1 = l1.next
if l2:
carry += l2.val
l2 = l2.next
cur.next = ListNode(carry%10)
cur = cur.next
carry //=10
return dummy.next
l1 = [2, 4, 3]
l2 = [5, 6, 4]
addTwoNumbers(l1, l2)
Но пишет, что одного аргумента addtwonumbers не хватает. Как я должен передать аргументы в функцию, чтобы она заработала?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
У вас лишний параметр self в функции addTwoNumbers.
Но лучше перегрузите оператор + для вашего класса:
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
def __add__(self, other: ListNode) -> ListNode:
val = self.val + other.val
next = ...
return self.__init__(val, next)
после этого можно будет делать так:
l1 = ListNode(...)
l2 = ListNode(...)
l3 = l1 + l2