Possible Duplicate:
Help with Python UnboundLocalError: local variable referenced before assignment




在python3中,我有两类,一类用于DNA,一类用于RNA。我希望DNA类具有一种方法,该方法可以提取DNA序列(DNA的实例变量self.sequence),将其更改为RNA序列(使用for循环轻松完成),然后使用新序列作为实例变量。

同时,我希望RNA类具有相反的方法(也就是说,它采用RNA序列,产生相应的DNA序列,然后创建一个使用该序列作为实例变量的DNA对象。 )

我从DNA制备RNA的方法如下:

def transcribe(self):
    RNAseq=''
    for base in self.sequence:
        if base=='A' or base=='C' or base=='G':
            RNAseq=RNAseq+base
        if base=='T':
            RNAseq=RNAseq+'U'
    RNA=RNA(RNAseq,self.name+'RNA')
    return RNA


这段代码给了我错误:
UnboundLocalError:分配前已引用局部变量“ RNA”

我可以做些什么吗?

最佳答案

RNA以外的名称来调用变量,例如rna

rna = RNA(RNAseq, self.name + 'RNA')
return rna


否则,您将尝试对两个不同的事物(类和变量)使用相同的名称,而后者则覆盖前者。

10-06 11:00