![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Nilm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 26.10.2006 Репутация: 1 Всего: 1 |
Всем привет!
![]() Помогите пожалуйста, мне необходимо подменить в Python класс string. Добавить в соответствие каждой строке переменную типа boolean и новый метод для строк. Не подскажите, где и что надо изменить? Наверное ТОЛЬКО(?) в интерпретаторе? Потому, что в модулях string.py, StringIO.py, GoldString.py строка не определяется. Я ведь прав? |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 10 Всего: 173 |
Да, к сожалению, в Python нельзя добавлять методы во встроенные типы.
Нельзя ли обойтись собственным классом, унаследованным от str? -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Nilm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 26.10.2006 Репутация: 1 Всего: 1 |
К несчастью нет ![]() Тем более, что мне кроме метода еще надо как-то и переменную типа bool добавить ![]() |
|||
|
||||
FunnyFalcon |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 27.3.2006 Репутация: 4 Всего: 7 |
А если просто отнаследовать:
|
|||
|
||||
Nilm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 26.10.2006 Репутация: 1 Всего: 1 |
Как не обидно - нет.
Мне надо сделать что-то типа taint mode, как в PHP и Perl. |
|||
|
||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
согласно http://python.promsoft.ru/index.php?action...id=3378#id_3378 я понимаю, что это курсовой на питоне?
опиши пожалуста проблему подробней ![]() |
|||
|
||||
Nilm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 26.10.2006 Репутация: 1 Всего: 1 |
Дело обстоит так: Я согласен, что надо унаслеовать класс. Но еще его надо и подменить в интерпретаторе, вместо стандартного str. Чтобы пользователю не надо было в ручную что либо подключать. Что такое taint mode: Как правило, всевозможные обработчики формочек, CGI скрипты и т.п. пишут люди умные, но даже они не застрахованы от ошибки. Например рассмотрим простейший пример, где пользователь вводит в форму свое имя, и по нажатию на кнопочку Submit переходит на стр, где написано: "Привет, [имя пользователя]". Соотв всякие нехорошие редиски могут этим востользоваться и провести injection atack. Например ввести в имя пользователя Java-script, который отошлет кукисы юзера атакующему или т.п. Соотв. taint mode запрещает производить со строками, полученными от позьзователя ажные действия, например, exec. Но опасны только строки, полученные от пользователя. Мы ставим в соотв строке bool переменную, которая и обозначает, taint эта строка или нет. И ессесно есть функция, которая возвращает значение этой булевой переменной. |
|||
|
||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
Nilm, ты пишешь под веб?
сможешь, дать постановку задачи? ![]() |
|||
|
||||
slivlen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 8.8.2006 Репутация: 1 Всего: 3 |
Может я что-то не понимаю, ну зделашь ты свой класс строк и что дальше? Надо чтоб функции которые будут иметь с ней дело(os.system, os.popen и многие другие) проверяли является-ли данная строка 'проверенной', плюс ко всему надо делать свой класс не только кот заменит str, но и тот кот заменит unicode string. Ты будешь переписывать стандартные модули? |
|||
|
||||
The_Gremlin |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 19.10.2006 Репутация: 1 Всего: 1 |
To slivlen:
Ну да, придется многое переписать. To pythonwin: Что именно ты имеешь ввиду под постановкой зачачи? Курсовой или именно данный момент (подмана класса) |
|||
|
||||
Nilm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 26.10.2006 Репутация: 1 Всего: 1 |
+1 |
|||
|
||||
pythonwin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
из http://python.promsoft.ru/index.php?action...id=3378#id_3378
Nilm, ты усложняешь - можно решить проблему по другому. ![]() а нужно описание (постановка задачи) для курсового! ![]() возможно твою ппроблему можно решить по другому ![]() |
||||
|
|||||
albertn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
На сколько я понял тебе нужно просто экранировать специальные html символы. Нашел по этой теме статейку:
Просто во всех выводах в форму экранировать специальные символы, и никаких проблем не будет. Или я неправильно понял твою проблему? |
|||
|
||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
albertn, спасибо за ссылку!
![]() Это сообщение отредактировал(а) pythonwin - 31.10.2006, 07:14 |
|||
|
||||
albertn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
||||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |