Уведомления

Группа в Telegram: @pythonsu

#1 Июль 17, 2007 23:10:11

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Советы по задаванию вопросов

Пожалуйста, при описании проблемы прикладывайте простой пример, наглядно иллюстрирующий ее (если это только возможно). В идеальном случае - doctest, unittest или nosetest. Или, что куда реальней - пример, который можно запустить и увидеть Поверьте, это нетрудно.

Примеры:

well
Всем привет, у меня такая проблемка: есть текст, разделенный кавычками. Я хочу разбить его на элементы и пробежаться по каждому регуляркой:

reg = re.compile (r“\ACN=(?P<need>.*),OU=(?P<OU>PCs.*|S.*),OU=UKR”)
spl = re.split (r“\”“, s)
for i in spl:
if (i != ”\n"):
i = str (i)
ss = reg.match (i)
print ss.group ('need')

Выдает ошибку:
Traceback (most recent call last):
File “<string>”, line 74, in run_nodebug
File “D:\Docs\Python\DelPC.py”, line 18, in <module>
print ss.group ('need')
AttributeError: ‘NoneType’ object has no attribute ‘group’
Если вместо ss = reg.match (i) вставляю ss = reg.match ('CN=OFF_PC_1,OU=PCs,OU=KKK,DC=gold,DC=lan') , то все получается. Даже не знаю, где уже копать :(
Все почти хорошо, но остается догадываться, что было во входной строке s. Может быть, на моем примере все бы заработало? :)

proDiva
Пытаюсь создать переход по полям формы по нажатию клавиши Enter. В многострочных полях нажатие вызывает перенос строки. Как мне запретить выполнять это действие или прописать свое?
Вот мои попытки:

def famEnter(self, evt):
if evt.GetKeyCode() == 13:
#wxKeyEvent(wx.WXK_BACK)
#s = self.fam.GetValue().split('\n')
#self.fam.EmulateKeyPress(wxKeyEvent(wx.WXK_BACK))
self.droj.SetFocus()
#self.fam.EmulateKeyPress(wxKeyEvent(wx.WXK_TAB))
#self.Update()
#self.OnEnter(self.fam)
evt.Skip()


Все что пытаюсь прописать, он успевает выполнить вначале, а потом добавляет перенос строки.
Тоже неплохо, но можно добавить пару строк для создания фрейма и вклеивания в него TextCtrl. И запуска приложения, конечно.

Все ники заняты
ActivePython 2.5, WinXP
При исполнении консольных скриптов иногда на консоль (cmd.exe) выдаются ошибки кракозябрами, типа:
pywintypes.com_error: (-2147221020, ‘\xd1\xe8\xed\xf2\xe0\xea\xf1\xe8\xf7\xe5\xf1\xea\xe0\xff \xee\xf8\xe8\xe1\xea\xe0’, None, None)
Как это расшифровать (интересует способ, а не конкретный текст)?
Уже хуже. Нельзя повторить сразу. Но хоть понятно (мне, по крайней мере).

Нави Гатор
Помогите, пожалуйста.
Я переопределил метод __setattr__ для класса следующим образом:
class SomeClass(SomeMetaClass):
def _setattr(cls,name,val):
try:
cls.__getattribute__(name)
except:
cls.__dict__[name]=val
SomeMetaClass.__setattr__=_setattr
В результате при вызове SomeClass.someattr='value' вылезает ошибка:

TypeError: Error when calling the metaclass bases
‘dictproxy’ object does not support item assignment

Что сдесь можно сделать?
А вот это совсем плохо. Что представляет SomeMetaClass - неясно. Что хотел сделать автор - неясно вдвойне. При дальнейшем обсуждении выяснилось, что dictproxy совершенно не при чем. Более того, setattr тоже не нужен. А проблема была в именно в SomeMetaClass, который на деле оказался elixir.EntityMeta со своим специфическим поведением.

Резюмируя.
Гораздо проще отвечать на вопрос, если пример с ошибкой можно воспроизвести, скопировав его и запустив. И СРАЗУ увидеть, что не работает. Если мне прийдется дописать еще надцать строк только для того, чтобы воспроизвести проблему автора - я далеко не всегда стану это делать. А тем более отвечать на пост. Или отвечу что-то в стиле: RTFM и RTFW.
Экономьте свое и чужое время. И чаще получайте хорошие ответы.

P.S. Все это - исключительно мое личное мнение.
Примеры выбраны абсолютно случайно. Есть и более хорошие постановки проблемы - их много. Есть и куда худшие - их гораздо больше.



Отредактировано (Июль 17, 2007 23:12:54)

Офлайн

#2 Июль 18, 2007 07:36:32

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Советы по задаванию вопросов

+1



Офлайн

#3 Июль 18, 2007 09:36:20

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

Советы по задаванию вопросов

Андрей Светлов
Уже хуже. Нельзя повторить сразу.
В данном случае повторять это ни к чему, поэтому текст скрипта, вызвавшего эту ошибку, я умышленно не стал приводить. Неужели уж никто не видел никогда таких кракозябров? Вопрос-то был совсем не в том, как обойти какую-то конкретную ошибку, а только в том, как прочитать уже выведенные кракозябры (выведенные не важно по какому поводу).



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version