I dont understand classes

I’m lost, I gone over python class tutorials at least a dozen times and I just cant get anything to work. Can anyone explain why this simple program is not working.

class TestName:
def init(self):
self.list_test = list_test

def return_list(self):
    return len(list_test) - 1

r1 = TestName([1,2,3,4,5])

print (r1)

Traceback (most recent call last):
line 7, in
r1 = TestName([1,2,3,4,5])
TypeError: TestName() takes no arguments

EDIT*
ok I kind fixed it
class TestName:
def init(self, list_test):
self.list_test = list_test

def return_list(self, list_test):
    return len(list_test) - 1

test_list1 = [1,2,3,4,5]
r1 = TestName(test_list1)

print (r1.return_list(test_list1))

Another question would be why do I need enter “test_list1” twice?

class TestName:
    def __init__(self):
        self.list_test = list_test
    def return_list(self):
        return len(list_test) - 1
r1 = TestName([1,2,3,4,5])
print (r1)

Try editing the definition of __init__ to receive the list you are intending to
pass to it as its first positional argument after self (the second identifier
within parentheses), as so:

    def __init__(self, list_test):

A similar example with more accompanying explanation can be found here:

https://docs.python.org/3/tutorial/classes.html#class-and-instance-variables

in which the class Dog takes name as its first positional argument after
self (the second identifier within parentheses).