2015-11-29 42 views
2

我正在編寫一個程序來查找給定字符串的所有子集。但是它會導致一個稱爲Killed: 9的錯誤。「殺死:9」的錯誤是什麼意思?

class Strings(object): 
    def __init__(self,string): 
     self.list1=[] 
     self.string=string 

    def appendToList(self,ch1): 
     self.list1.append(ch1) 
     for i in self.list1: 
      self.list1.append(i+ch1) 

    def subset(self): 
     for ch in self.string: 
      self.list1=self.appendToList(ch) 
     print self.list1 

obj=Strings('hello') 
obj.subset() 
+3

警告:請勿執行。 – kay

回答

4

你,當你每次迭代現有元素(appendToList),並沒有必要在subset方法分配時間追加一個元素進入無限循環,檢查了這一點:

class Strings(object): 
    def __init__(self,string): 
     self.list1=[] 
     self.string=string 

    def appendToList(self,ch1): 
     self.list1.append(ch1) 
     # for i in self.list1: # no needed for loop is in subset 
     # self.list1.append(i+ch1) 


    def subset(self): 
     for ch in self.string: 
      self.appendToList(ch) # no need to assign to self.list1 
     print self.list1 

obj=Strings('hello') 
obj.subset() 
+0

謝謝! @roberto –

+2

歡迎您,在SO中表示感謝的最佳方式:將答案標記爲正確(單擊綠色複選標記):) – Roberto

1

你可以問程序kill什麼信號意味着:

$ kill -l | column 
1) SIGHUP  2) SIGINT  3) SIGQUIT  4) SIGILL  5) SIGTRAP 
6) SIGABRT  7) SIGBUS  8) SIGFPE  9) SIGKILL  10) SIGUSR1 
11) SIGSEGV  12) SIGUSR2  13) SIGPIPE  14) SIGALRM  15) SIGTERM 
16) SIGSTKFLT 17) SIGCHLD  18) SIGCONT  19) SIGSTOP  20) SIGTSTP 
21) SIGTTIN  22) SIGTTOU  23) SIGURG  24) SIGXCPU  25) SIGXFSZ 
26) SIGVTALRM 27) SIGPROF  28) SIGWINCH 29) SIGIO  30) SIGPWR 
31) SIGSYS  34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 
63) SIGRTMAX-1 64) SIGRTMAX  

所以你的程序接收到SIGKILL(可能是由OOM殺手):

SIGKILL

默認操作:進程異常終止。

描述:殺死(不能被發現或忽略)。

C.f. Who "Killed" my process and why?