Найти - Пользователи
Полная версия: дескрипторы и декораторы и мета пробовал а PyCharm не поддается!
Начало » Инструментальные средства разработки » дескрипторы и декораторы и мета пробовал а PyCharm не поддается!
1 2 3 4 5
zavx0z
doza_and
уже выполнили приложение до определенной точки и вписываете текст программы именно в этом месте

На точке останова после выполнения классов:
В консоли автодополнение работает, но в табе его нет и даже подсвечивает, что аттрибут отсутствует.

Аттрибут подсвечен, что отсутствует, а информация присутствует

Вот вам и автодополнение с подгрузкой описания… В таких то простых случаях допилить не могут, а Вы уже тут фантастические и не логичные случаи в пример приводите.
zavx0z
doza_and
многие разработчики склоняются к тому что автодополнение в питоне вообще не нужно и то что оно есть это дань привычкам
И вообще бред полнейший. Автодополнение не нужно программисту как таксисту навигатор…
От масштаба города профессианализм таксистов не понижается, а потеряться можно. Спрашивать дорогу у ближайшего или плутать…
Или как предлагает FishHook нужно картой пользоваться в виде сгенерированной автодокументации.
Нет уж спасибо. Я предпочитаю перемещаться с качественным атодополнением, которое, к сожалению, иногда отсутствует.
4kpt_IV
zavx0z
Я предпочитаю перемещаться с качественным атодополнением, которое, к сожалению, иногда отсутствует

Вы можете предпочитать все, что угодно. Но это же не значит, что сообщество и разработчики языка должны рвануть это реализовывать исходя из Ваших предпочтений
zavx0z
4kpt_IV
сообщество и разработчики языка должны рвануть это реализовывать
А об этом и не было разговора. Был вопрос. Как сделать доступ к аттрибутам и свойствам класса вложенного в экземпляр другого класса без потерь возможности автодополнения. Может кто то знает данный метод, а кто не знает, того и не спрашиваю… тем более не прошу кого-то куда-то рвануть.
4kpt_IV
Вам объяснили, почему это не всегда реализуемо в любом интерпретаторе. До Вас пытаются донести, что в программах на python лучше воспринимать автоопределение как бонус, а не необходимый инструмент.
zavx0z
Хрена ли мне доносить об автодополнении, если я Vim'ер со стажем! Я вопрос задал, а вы тут все чего-то доносите, не знаете ответа и ладно. Доносите сумки бабушкам до двери лучше.
4kpt_IV
zavx0z
Доносите сумки бабушкам до двери лучше.
У Вас забыл спросить кому и чего мне доносить.

Ответ на вопрос. Оно нафиг никому не надо, так как ни для кого это не проблема, поэтому никто ответа не знает… Такой ответ устраивает?
zavx0z
4kpt_IV
не сомневаюсь уже. Спасибо что открыли глаза на реальность.
py.user.next
zavx0z
Для взаимодействия с элементами страницы удобен доступ вида
 MainPage.searche_frame.block_resultat.resultats.save_to_db()
Вот к примеру нужно зайти на адрес и кликнуть пагинатор:
 MainPage.searche_frame.block_resultat.block_paginator.buttons[2].click()
Или лучше так?
  
wd.get("http://www.wwwww.ww/www/www/www2352?page=1#post-173417")
searche_frame = wd.find_element_by_id("searche_frime_id")
self.wd.switch_to.frame(searshe_frame)
WebDriverWait(wd, 10).until(lambda driver: driver.find_elements_by_xpath("//locator")).click()

Сама Вселенная ограждает тебя от этого, ломая это в PyCharm'е, но ты упорно не внемлешь её сигналам. Придётся тебе менять мозги, да, это тяжело понять и принять, но вот это
 MainPage.searche_frame.block_resultat.resultats.save_to_db()
это очень конкретная лажа. Ты её юзаешь из-за удобства, но это такое же удобство, как юзать глобальные переменные в самом начале (проходил такой этап?), там тоже новички возмущаются “ребята, это же так удобно, можно одну переменную поставить и больше её нигде не надо писать! столько строк экономится, почему это плохо? вы мне всё врёте! вы просто хотите меня на нулевом уровне оставить, чтобы я вас не превзошёл”, а ребята на него смотрят и думают “опять…” и фейспалм делают тихо.

Короче, вот эта хрень, описана во многих книжках. Суть её заключается в том, что ты фиксируешь программу, а программу надо наоборот развязывать, чтобы её части были независимы друг от друга. Переименования - это вообще частая вещь и ты должен в любое время взять и переименовать любую часть без проблем. А ты вот таких вызовов сто штук напишешь (ведущие в разные классы в разных классах), а потом захочешь какую-нибудь переменную переимновать и из-за этого придётся полпрограммы редактировать. Это не самое страшное даже, потому что сейчас вот всякие эти PyCharm'ы стремятся иметь средства для умного рефакторинга, где среда сама ищет, как это всё переименовать одним махом. Но вот когда ты поймаёшь логическую ошибку какую-нибудь в архитектуре, ну, например, тебе надо добавить фичу, совершенно только что придуманную (уже после создания архитектуры), а архитектура программы выстроена так, что не добавишь ты эту фичу, и ты не можешь выбирать, потому что архитектура тебе нафиг не нужна, тебе нужна фича (архитектура - это для программистов, а фича - это для пользователей, для кого и программа, собственно, делается), тогда тебе надо будет перестраивать архитектуру, вообще какие-то фрагменты нахрен удалять и писать вместо них другие, с другими методами.

И вот у тебя вот эта хренотень
 MainPage.searche_frame.block_resultat.resultats.save_to_db()
а ты должен удалить searche_frame и переделать resultats кардинально, и всё это независимо друг от друга: одно - для одной фичи, а другое - для исправления бага какого-то внезапного. И что ты будешь делать? Правильно, ты будешь сидеть и заниматься хернёй. Ты будешь заниматься не фичами и не багами, а той хренью, которую ты понавписывал три года назад, когда нихрена не читал книг, где всё это расписано, что я тебе сейчас пишу. Так что учись перестраивать мозги, учись отказываться от всякой устоявшейся хрени, а то так и будешь искать инструменты всё время, а потом однажды не найдёшь что-нибудь и программа погибнет, потому что неправильно срослось что-то в ней, а инструмента нет, чтобы автоматом починить. Следуй общепринятым правилам. Никаких глубоковложенных циклов, никаких глубоковложенных вызовов. Всё это должно между собой через интерфейсы общаться.

zavx0z
Надо, ох как надо автодополнение (широкая структура большой вложенности намечается), а к другой архитектуре кода не хочется прибегать.
А чем тебе jedi habra в Vim'е не подошло? Оно как раз тупо лазит по содержимому объектов. Но тут как раз дело в том, что если тебе надо это в своём же проекте, то ты уже потерялся.
zavx0z
py.user.next
Придётся тебе менять мозги
Доигрался в метапрограммирование до степени изменения мозгов. Python не оправдал моих ожиданий. Я конечно не хочу сказать, что язык хреновый, просто ожидания мои были не подкреплены глубокими знаниями. Перевернул я за эту неделю все кишки Pythonа… попробовал, увидел, понял. Даже рад тому, что пришлось расковырять отрицательные стороны языка, которые не замечал несколькими годами ранее.
py.user.next
нихрена не читал книг
Книг то как раз прочитал дохрена за пару-тройку лет, но пока сам во все тяжкие не пустишься, не поймешь всех “прелестей”.
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