Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 17, 2017 13:33:13

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как реализовать singleton?

Не понял, кто не дает вызывать вот так

 class Chrome:
    @ststicmethod
    def get(url):
         pass
Chrome.get('http://ya.ru')
безо всякого поезда и лишнего объекта, который здесь просто не нужен



Офлайн

#2 Янв. 18, 2017 13:30:04

sys_dev
От:
Зарегистрирован: 2011-06-22
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Как реализовать singleton?

FishHook
Не понял, кто не дает вызывать вот так
Реализацию get() где мне взять? Ответ из класса webdriver.Chrome (его уже упоминал, см. выше). Тогда либо 1. Нужен объект webdriver.Chrome и писать:
 def get(url):
   return driver.get(url)
2. Либо унаследоваться от webdriver.Chrome и получить функциональность от него. Что я и сделал.
3. Либо использовать вариант с декоратором singleton(см. код выше)

Мне не совсем понятно, что именно вы не понимаете? :)



Офлайн

#3 Янв. 18, 2017 13:38:31

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как реализовать singleton?

sys_dev
что именно вы не понимаете?
Зачем нужен объект, там где он не нужен. Какой-бы вариант реализации синглтона вы не придумали, вы все равно будете хранить некий объект в атрибуте класса. Вы как бы создаете новый объект, но на самом деле вытягиваете его из скрытого поля класса. Я не понимаю, зачем всем этим заниматься, если то же самое можно сделать явно, без всякой подковерной возни с подменой объекта.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version