【发布时间】:2018-04-16 12:51:18
【问题描述】:
我试图在 return 语句中获取已定义类的新对象,但在使用 return 语句时遇到了困难。我应该通过在同一个返回语句中调用构造函数来获得一个新对象 将那些需要构造函数的参数作为参数传递。考虑到每个类的构造函数都是类名。
这是我目前所拥有的:
def complementary(self):
complementary = ''.join([DNA.bases_complementary[base] for base in self.get_sequence()])
return complementary
但它只是返回一个字符串,这是显而易见的,但可以将该字符串作为子类 DNA 的新对象返回(超类是 SEQUENCE)。 我的超类是这样的:
class SEQUENCE:
def __init__(self, sequence):
self.__sequence = sequence
length = len(sequence)
def __str__(self):
st = 'The introduced sequence is: {0}\n'.format(self.__sequence)
st = st + 'The length of the sequence is: {0}\n'.format(len(self.__sequence))
return st
def get_sequence(self):
return self.__sequence
我的 DNA 子类是这样的:
class DNA(SEQUENCE):
bases = {'A','T', 'C','G'}
complementary_bases = {'A':'T', 'T':'A', 'C':'G','G':'C'}
transcription = {'A':'U', 'T':'A', 'C':'G','G':'C'}
def __init__(self, sequence):
super().__init__(sequence)
self.__length = len(sequence)
bases = {'A','T','C','G'}
sequence_set = set(sequence)
if sequence_set <= bases:
print('The introduced sequence is', sequence, 'with the following length',len(sequence))
else:
print('INCORRECT DNA SEQUENCE')
raise NameError('SequenceError')
【问题讨论】:
-
complimentaria的返回字符串示例是什么?