创建彼此的类对象的 Python 类

标签 python python-3.x

<分区>

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

在 python3 中,我有两个类,一个用于 DNA,一个用于 RNA。我希望 DNA 类有一个方法,它获取 DNA 序列(DNA 的一个实例变量,self.sequence),将其更改为 RNA 序列(使用 for 循环很容易完成),然后创建一个 RNA 对象新序列作为实例变量。

同时,我希望 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(RNAseq, self.name + 'RNA')
return rna

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

关于创建彼此的类对象的 Python 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13758391/

相关文章:

python - 为什么 python dict.update() 不返回对象?

python - 使用 Pygame 查找歌曲的长度

python - 如何从 setup.py 判断模块是否以可编辑模式安装

python - 将函数返回元组解包为键值对

python - 如果密码正确,如何发现 'Access granted' 被打印了 3 次?

python-3.x - 在 Python 3 中将空字节表示为二进制(字节)字符串的最简洁的 Python 方式

Python 和 Selenium - 在不关闭浏览器的情况下关闭所有选项卡

python - 将一列 int64 (YYYYMMDDHHMMSS) 转换为不带分隔符的 datetime64

python-3.x - PyGame 桨板不动

python - 什么是 Python 中的异步?