【问题标题】:What does "Killed: 9" error mean?“Killed:9”错误是什么意思?
【发布时间】:2016-03-02 21:17:17
【问题描述】:

我正在编写一个程序来查找给定字符串的所有子集。但是,它会导致一个名为 Killed: 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()

【问题讨论】:

  • 警告:不要执行。

标签: python


【解决方案1】:

每次迭代现有元素(在 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()

【讨论】:

    【解决方案2】:

    你可以问程序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

    默认动作:进程异常终止。

    描述:杀死(不能被捕获或忽略)。

    参考Who "Killed" my process and why?

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 1970-01-01
      • 2015-03-04
      • 2012-11-26
      • 2018-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      相关资源
      最近更新 更多