Уведомления

Группа в Telegram: @pythonsu

#1 Март 19, 2012 15:28:22

synthetic
От:
Зарегистрирован: 2012-03-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Небольшой вопрос по классам

Всем доброго времени суток!

есть кусок кода:

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
^

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



Отредактировано (Март 19, 2012 15:29:12)

Офлайн

#2 Март 19, 2012 15:42:17

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Небольшой вопрос по классам

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

self.hash_of_sequences[self.tag] = self.sequence
Это вообще, что такое?

Офлайн

#3 Март 19, 2012 16:20:44

synthetic
От:
Зарегистрирован: 2012-03-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Небольшой вопрос по классам

Это быа попытка сделать словарь из tag и sequence. С удовоьствием выслушаю Ваши замечания.



Офлайн

#4 Март 19, 2012 16:35:23

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Небольшой вопрос по классам

return там зачем?

Офлайн

#5 Март 19, 2012 17:34:48

synthetic
От:
Зарегистрирован: 2012-03-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Небольшой вопрос по классам

Помогло, спасибо! 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 и возможно задаю очень глупые вопросы. Заранее извините.



Отредактировано (Март 19, 2012 19:28:31)

Офлайн

#6 Март 19, 2012 18:01:44

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Небольшой вопрос по классам

synthetic
Я правиьно понимаю, что первым аргументом дожен быть экземляр этого класса и как этого избежать.
Понимаете вы правильно - делаете неверно.
my_sequence = sequence()
my_sequence.read_file_hash(sys.argv[1])
synthetic
Недавно познакомися с python и возможно задаю очень глупые вопросы. Заранее извините.
Извиняться не стоит - лучше прочтите книжку или туториал какой-нибудь.
Чтобы впредь избежать таких вопросов )

Офлайн

#7 Март 19, 2012 19:55:27

synthetic
От:
Зарегистрирован: 2012-03-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Небольшой вопрос по классам

Спачибо!



Офлайн

#8 Март 19, 2012 22:29:45

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Небольшой вопрос по классам

А я посоветую обращаться с вопросами для начала к поисковику. На фразу “unbound method” вам мгновенно выпадет адекватный ответ, и не нужно будет ждать ответа на форуме долгое время :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version