在类中使用string.replace定义函数

时间:2014-10-06 23:05:24

标签: python

我已经定义了一个类“DNA”。我现在正试图在该类中创建一个函数,允许我将DNA转换为RNA(这基本上意味着用“U”替换任何“T”)。我的DNA类继承了另一个类的参数。 我必须使用string.replace方法。

class DNA(Seq):
   def __init__(self, seq):
    Seq.__init__(self, seq, pattern=(re.compile('[^ACGTacgt]')))
    self.data = seq.upper()
def __repr__(self):
        return self.data

我想在DNA类的dna序列上使用该函数。

编辑: 我希望能够做到以下几点:

dna1 = DNA('ACCCGT')
rna1 = dna1.translate_to_RNA()
print rna1

translate_to_RNA()是我定义的函数,输出是('ACCCGU')

Edit2:

class Seq:
    def __init__(self, seq, pattern): 
        if pattern.search(seq): 
            print " Warning : sequence contains illegal characters " 
        self.data = seq.upper() 
    def __getitem__(self, index):
        return self.data[index]
    def __len__(self):  
        return len(self.data) 

import re

class DNA(Seq):
    def __init__(self, seq):
        Seq.__init__(self, seq, pattern=(re.compile('[^ACGTacgt]')))
        self.data = seq.upper()
        self.seq = seq
    def __repr__(self):
        return self.data
    def translate_to_RNA(self):
        new_string = self.seq("T","U")
        rna1 = RNA(new_string)
        return rna1


class RNA(Seq):
    def __init__(self, seq):
        Seq.__init__(self, seq, pattern=(re.compile('[^ACGUacgu]')))
        self.data = seq.upper()
    def __repr__(self):
            return self.data

1 个答案:

答案 0 :(得分:0)

在您内部定义一个方法,对表示数据的字符串使用string.replace()方法。 (你没有解释这些数据是如何表示的。)

版: 你应该在DNA类中使用一个字符串变量来保存你初始化DNA实例的字符串。你应该定义一个类似的RNA类。 那么,你可以像这样在DNA类中实现一个函数:

def translate(self):
    new_string=self.string_representation.replace("T","U")
    rna1 = RNA(new_string)
    return rna1

对于print运算符,您需要为您的RNA类实现一个字符串转换。 (使用 str