Найти - Пользователи
Полная версия: Изменение состояния неизвестной переменной объекта.
Начало » Python для новичков » Изменение состояния неизвестной переменной объекта.
1 2 3 4 5 6 7
MiK
Ну я понял, во втором случае, он не получает ссылку на объект и соответственно ругается. Вообщем фигня.
4kpt_III
MiK
Да Вы еще тупее, чем я думал… Дальнейшие объяснения бесполезны.

MiK
И то что ты показываешь называется говнокод, потому как в дзен питона сказано, что явное лучше чем не явное.

Это единственное правило которое Вы смогли запомнить?

У Ижа и Хаябузы тоже по 2 колеса… Но это не значит, что они одинаковые.

P.S. Я не поторопился. У меня сожрало часть кода при переносе.

P.S.S. Хроничейский махровый нубень. Аллелуйя.
MiK
alex925
Тогда, подозреваю, действительно всё плохо.
MiK
4kpt_III
Дружище, я больше спорить не буду. Извини, но я считаю такой подход признаком большого и махрового говнокода. Ты, конечно, хорошо знаешь язык, но с людми дружить не хочешь.
4kpt_III
MiK
но с людми дружить не хочешь.

Принято к сведению.
Да. Если честно, то есть у меня с этим проблема. Я либо сразу нахожу общий язык либо не нахожу вообще. Максималист, наверное.

Мой Вам совет. Без эмоций. Возьмите действительно что-то почитать. Рекомендую все же взять Г. Буч. Очень и очень толковая книга. Я такой же ахинеей по-началу занимался, так как пришел из делфи. Эта книга на многое мне открыла глаза. И не спорьте, если не уверены, что правы ибо выглядит очень и очень по-детски.

P.S. Это не говнокод. Просто Вы еще не знаете задач, где нужно гарантировать, чтобы метод функционировал только для экземпляра класса, но не для самого класса. Если хотите, то могу здесь привести пример. Особенно такое часто встречается в вебне. Мало того, если такой метод задекорировать staticmethod, то он вообще не будет работать.

MiK
4kpt_III
Да, такой пример было бы очень интересно посмотреть.
4kpt_III
Без проблем.
Flask. Использование flask-classy:

class IndexView(FlaskView):
#
    def packages(self):
        return render_template("s_work_packages.html")
#
    @staticmethod
    def not_work():
        return render_template("s_work_packages.html")

В первом случае все будет работать. Т.е. по ссылке ../index/packages/ мы получим отрендеренную с нужным контекстом страницу s_work_packages.html. Во втором мы не получим ничего. На запрос по url ../index/not_work/ flask выплюнет 404. Хотя оба эти методы и не используют ссылку на экземпляр класса. Но первый является методом экземпляра, а второй - статическим. Ну и как Вы видите внутренне они идентичны.

P.S. staticmethod декоратор в этом случае рационально использовать для группирования однотипной логики внутри отдельного класси (это не опечатка). При этом эта логика не будет добавлена как отдельный url но к ней можно будет обращаться из каждого отдельного метода.
MiK
4kpt_III
а запись во фласке выглядит примерно так?
tamplate_name = packeges()

Или тоже, можно пример?
4kpt_III
Не-не-не. Это МТV шаблон.
Просто делается экземпляр класса Flask, который в свою очередь подтягивает инициализированные расширения и все методы для ответа по нужным url (методы должны быть или обернуты специальными декораторами или быть классами, наследуемыми от FlaskView /в этом случае они становятся класси/).
MiK
4kpt_III
Просто скинь пример пожалуйста, можно свой, а то любопытно стало, а лезть во фласк неохота.

ПС: что такое mtv я вкурсе.
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