Форум сайта python.su
15
Вот модуль Notes.py:
#encoding:cp1251 import datetime categoies={1:u'заметки', 2:u'результаты', 3:u'цели'} list_of_notes=[] class Note(): def __init__(self): self.date=datetime.date.today() print categoies while True: try : categoryChoice=int(input('enter the category')) self.category=categoies[categoryChoice] break except NameError: print 'try again' continue text=str(input('Note: ')) self.text=text def __unicode__(self): return self.date, self.category, self.text[:20] def add_note(): note=Note() list_of_notes.append(note) def get_notes(): for i,note in enumerate(list_of_notes): print i, note
>>> import Notes >>> Notes.add_note() {1: u'\u0437\u0430\u043c\u0435\u0442\u043a\u0438', 2: u'\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b', 3: u'\u0446\u0435\u043b\u0438'} enter the category>? 1
Note: >? 'some first text'
>>> Notes.get_notes() 0 <Notes.Note instance at 0x0000000002B13848> 1 <Notes.Note instance at 0x0000000002B13508>
Офлайн
5
Извращенский код какой то :)
Как правильно выводить русский язык?
возможно ли вводить строкое значение без кавычек?А почему б не попробовать ). PS даже если число введешь, в text запишется строка.
Почему функция __unicode__ не возвращает переопределенное в классе представление?
Офлайн
52
__unicode__(self)
Defines behavior for when unicode() is called on an instance of your class. unicode() is like str(), but it returns a unicode string. Be wary: if a client calls str() on an instance of your class and you've only defined __unicode__(), it won't work. You should always try to define __str__() as well in case someone doesn't have the luxury of using unicode.
Офлайн
15
Piton23
1. Код просто для набивания руки. Есть советы?
2. Всяко пробовал выводить. То же самое. Вроде это актуальная тема.
os - windows 7
ide - pycharm 2.5
python 2.7.3
3. Ну так то и спросил, потому что пробовал.
4. Это с django взято. Например models.py:class BlogPost(models.Model): title=models.CharField(max_length=150) body=models.TextField(blank=False) def __unicode__(self): return '%s %s' % (self.timestamp, self.title)>>> from blog.models import BlogPost >>> BlogPost.objects.all() [<BlogPost: 2012-05-08 13:20:53 настройка отображения постов по категориям>, <BlogPost: 2012-05-06 01:01:01 Работа над подключением картинок>......
Офлайн
5
Да нет советов не дам, программируй дальше, все придет с опытом.
# -*- coding: utf-8 -*-
в начало файла добавь, и файл смотри чтоб сам был в utf-8, тогда норм выведет в консоль поидее (с учетом того что ты строки будешь выводить а не словари и списки)
Офлайн
52
Я, кстати, первое что подумал, увидев __unicode__, что человек первым делом изучал django, а потом питон :)
Если посмотреть исходный код models.Model, всё становится на свои места.
Офлайн
15
Piton23К сожаления не решило задачу
# -*- coding: utf-8 -*-
в начало файла добавь, и файл смотри чтоб сам был в utf-8, тогда норм выведет в консоль поидее (с учетом того что ты строки будешь выводить а не словари и списки)
Офлайн
15
fata1ex943 сроки. Куда уж яснее стало))
Если посмотреть исходный код models.Model, всё становится на свои места.
def __str__(self): return '%s|%s|%s' % (self.date,self.category,self.text[:10])
Офлайн
52
На последнем PyCon небезызвестный Ned Batchelder сделал отличный доклад. Есть как видео, так и текст со слайдами. Изучайте, это, пожалуй, самая распространённая проблема среди начинающих заклинателей змей :)
Офлайн
15
ок , спс
Офлайн