Найти - Пользователи
Полная версия: Небольшой вопрос по классам
Начало » Python для новичков » Небольшой вопрос по классам
1
synthetic
Всем доброго времени суток!

есть кусок кода:
class sequence: #sequence
def __init__(self):
self.seq = ''
self.tag = ''
self.hash_of_sequence = {}

def read_sequence_from_lines(self, Line): # read sequence into a hash tag /sequence object
if Line.startswith('>'):
self.tag = Line
self.sequence = Line.next()
return self.hash_of_sequences[self.tag] = self.sequence
else:
pass

def read_file_hash(self, filename): #readfile as lines
f = open(filename, "r")
for Line in f.readlines():
self.read_sequence_from_lines(Line)
f.close()
пытаюсь импортировать его в интерактивной оболочке - выдается ошибка:
>>> import al
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "al.py", line 61
return self.hash_of_sequences[self.tag] = self.sequence
^

Подкажите, плз, в чем закючатя ошибка.
s0rg
synthetic
Подкажите, плз, в чем закючатя ошибка.
В коде.

self.hash_of_sequences[self.tag] = self.sequence
Это вообще, что такое?
synthetic
Это быа попытка сделать словарь из tag и sequence. С удовоьствием выслушаю Ваши замечания.
s0rg
return там зачем?
synthetic
Помогло, спасибо! return там действительно не к месту.
допустим, я хочу проверить работспособность этого кода и считать некий файл: к коду я добавил строки:
sequence.read_file_hash(sys.argv[1])
и соотвественно запустил командой:
python script-name filename

Выдается ошибка

Traceback (most recent call last):
File “al.py”, line 114, in <module>
sequence.read_file_hash(sys.argv)
TypeError: unbound method read_file_hash() must be called with sequence instance as first argument (got str instance instead)

Я правиьно понимаю, что первым аргументом дожен быть экземляр этого класса и как этого избежать.
Недавно познакомися с python и возможно задаю очень глупые вопросы. Заранее извините.
s0rg
synthetic
Я правиьно понимаю, что первым аргументом дожен быть экземляр этого класса и как этого избежать.
Понимаете вы правильно - делаете неверно.
my_sequence = sequence()
my_sequence.read_file_hash(sys.argv[1])
synthetic
Недавно познакомися с python и возможно задаю очень глупые вопросы. Заранее извините.
Извиняться не стоит - лучше прочтите книжку или туториал какой-нибудь.
Чтобы впредь избежать таких вопросов )
synthetic
Спачибо!
fata1ex
А я посоветую обращаться с вопросами для начала к поисковику. На фразу “unbound method” вам мгновенно выпадет адекватный ответ, и не нужно будет ждать ответа на форуме долгое время :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB