为什么这段代码让字符串的所有子字符串都不起作用(Python)?

时间:2015-06-05 14:09:31

标签: python object

我使用的是面向对象的。单独执行时,它给出了正确的答案,但在类中,它会在ideone.com上给出运行时错误。为什么这样?我在这里做错了什么?

class abc:
        def _init_(self):
            self.s=""
            subs=[]
        def draw(self):
            self.s=raw_input()
            for i in range(0,len(self.s)+1):
                for j in range(i+1,len(self.s)+1):
                    subs.append(self.s[i:j])
        def printt(self):
            for each in subs:
                print each
k=abc()
k.draw()
k.printt()

1 个答案:

答案 0 :(得分:1)

您需要更改__init__的这一行(请注意__init__两边都有两个_,而不只是一行。

def __init__(self):
    self.s = ""
    self.subs = []  # needed self

然后在draw中,此行应为

self.subs.append(self.s[i:j])

printt

中的相同内容
def printt(self):
    for each in self.subs:
        print each