python类不接受任何参数

无重复字符的最长字符串问题,我这样写一直报错
class Solution():
def lengthOfLongestSubstring(self,s):
m=str(s)
q=[]
max_1=0
for i in m:
if i not in q:
q.append(i)
print(q)
else:
sum_1=len(q)
q.clear()
q.append(i)
if max_1<sum_1:
max_1=sum_1
print(max_1)
s1=Solution("abcabcab")
si.lengthOfLongestSubstring()
报错:TypeError: Solution() takes no arguments
然后我改成:s1=Solution()
si.lengthOfLongestSubstring("abcabcab")
又报错:NameError: name 'si' is not defined. Did you mean: 's1'?
请问按照这个思路应该怎么改?

s1=Solution()
si.lengthOfLongestSubstring("abcabcab")
一个是s1 一个是si , 这两个不一样,,

又报错:NameError: name 'si' is not defined. Did you mean: 's1'?
这里提示了:"si 未 定义, 你是不是想写 s1 "

下面是我的理解,供参考:
应该是调用方法和类的定义有点需要改进的地方,如类的定义后面不需要括号,类的方法调用需要实例化,具体算法没有修改,修改如下:
参考链接:
python:类基础_不怕猫的耗子A的博客-CSDN博客_python 类

#https://blog.csdn.net/qq_39314932/article/details/80716295
class Solution:
    def lengthOfLongestSubstring(self,s):
        m=str(s)
        q=[]
        max_1=0
        for i in m:
            if i not in q:
                q.append(i)
                print(q)
            else:
                sum_1=len(q)
                q.clear()
                q.append(i)
        if max_1<sum_1:
            max_1=sum_1
        print(max_1)

s=Solution()
s.lengthOfLongestSubstring("abcabcab")


img