У меня есть программа, которая читает во входном текстовом файле (DNA.txt) последовательности ДНК, а затем переводит последовательность ДНК (сохраненную в виде строки) в различные аминокислотные коды SLC с помощью этой функции:Наследование функции Python
def translate(uppercase_dna_sequence, codon_list):
slc = ""
for i in range(0, len(uppercase_dna_sequence), 3):
codon = uppercase_dna_sequence[i:i+3]
if codon in codon_list:
slc = slc + codon_list[codon]
else:
slc = slc + "X"
return slc
Я тогда функция, которая создает два вывода текстовых файлов называется:
normalDNA.txt and mutatedDNA.txt
Каждый из этих файлов имеет одну длинную последовательность ДНК.
Теперь я хочу написать функцию, которая позволяет мне читать оба эти файла в качестве входных файлов и использовать упомянутую выше функцию «перевести», чтобы перевести последовательности ДНК, содержащиеся в текстовых файлах. (так же, как я сделал оригинальный файл DNA.txt, упомянутый в начале этого объяснения), но используя оригинальную функцию перевода. (Поэтому я предполагаю, что я пытаюсь наследовать свойства другой функции для этого). У меня есть этот код:
def txtTranslate(translate):
with open('normalDNA.txt') as inputfile:
normalDNA_input = inputfile.read()
print normalDNA_input
with open('mutatedDNA.txt') as inputfile:
mutatedDNA_input = inputfile.read()
print mutatedDNA_input
return txtTranslate
Программа работает, когда я называю его:
print txtTranslate(translate)
Но он печатает:
function txtTranslate at 0x103bf39b0>
Я хочу второй функции (txtTranslate) читать внешние текстовые файлы, а затем первую функцию перевести входы и «распечатать» результат пользователю ...
У меня есть мой полный код по запросу, но я думаю, что мне не хватает чего-то маленького, надеюсь! или я должен положить все в классы с ООП?
Я новичок в связывая две функции, поэтому, пожалуйста, простите за отсутствие знаний во второй функции ...
Привет снова Кевин, я постараюсь это быстро ... Я получаю сообщение об ошибке, что говорит: линия 70, в txtTranslate (перевод) TypeError: txtTranslate() принимает ровно 2 аргумента (1) –
Lee
Извините, Кевин, никаких ошибок, это была моя ошибка. Теперь он работает, но не дает результата (печать) – Lee
Хорошо, я немного поиграл, это работает сейчас, но спасибо за вашу помощь. Я думаю, что проблема исходит откуда-то еще. Дает мне ПОЧТИ, что я хочу! :) Спасибо за ваш вклад! – Lee