Skip to content

Pripisnov#164

Open
Alexey152RUS wants to merge 17 commits into
mainfrom
Pripisnov
Open

Pripisnov#164
Alexey152RUS wants to merge 17 commits into
mainfrom
Pripisnov

Conversation

@Alexey152RUS
Copy link
Copy Markdown
Collaborator

No description provided.

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хорошо. Но есть некоторые замечания.

def solve_task(self):
thinking_time = randint(3, 6) # Генерация случайного времени от 3 до 6 секунд
time.sleep(thinking_time) # Задержка выполнения программы на указанное количество секунд
print("I'm ready now!")
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нет.. даже после того, как Pupil подумает, он всё равно должен сказать "Я еще не готов".
Для этого стоит вызвать в этой строке родительский метод: super().solve_task()

atm.check_balance()
atm.withdraw_cash(3000)
atm.deposit_cash(2000)
if isinstance(atm, OnlineATM):
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Чтоб не писать здесь if, стоит воспользоваться возможностями полиморфизма;)
Надо завести make_payment в классе ATM, только в этом случае метод будет вырожденным (просто pass вместо тела метода).

@@ -0,0 +1,24 @@
class ParagraphIterator:
def __init__(self, text, paragraph_symbol):
self.paragraphs = text.split(paragraph_symbol) # Разделение текста на параграфы
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Так теряется весь смысл итератора. Мало нам исходного текста в памяти, так тут ещё и целый список создаётся. Надо в __next__ идти прямо по исходному тексту.

@IlyaOrlov
Copy link
Copy Markdown
Owner

121 файл!!!
Нужно сделать git pull origin main и git push, чтоб в пулл реквесте остались только Ваши файлы!

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Есть существенные замечания!
И... 124 файла!!!

Comment thread Practice/Pripisnov/work/my10.1work.py Outdated
processes.append(process)
process.start()
# process.join() - НЕ вызываем join здесь
for process in processes:
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

То что мы вызываем join() в вложенном цикле (фактически, для только что созданного процесса), сводит на нет весь параллелизм (проблема та же, что Вы описали в стр.35).


import timeit

# Замер времени исполнения функции find_primes для каждого диапазона
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Стоило посчитать суммарное время выполнения расчетов для всех диапазонов и сравнить с аналогичным временем для потоков и процессов.

import time

# Запуск три раза последовательно
for i in range(3):
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Этот код (в глобальной области видимости) будет выполняться во всех дочерних процессах.

threads = []

for args in args_list:
thread = threading.Thread(target=results.append, args=(function(*args),))
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Почему здесь выбраны именно потоки? Ведь из-за GIL в Python потоки не позволяют обеспечить параллельные вычисления!

…ay23 into Pripisnov

# Conflicts:
#	Practice/Stupina/homework_8/task_2.py
#	Useful/for_lec14/ctxlib_example1.py
#	Useful/for_lec14/listdir_example.py
@IlyaOrlov
Copy link
Copy Markdown
Owner

Стало, конечно, лучше... Но 54 файла тоже многовато. В PyCharm через меню Git->Branches->Remote main->Show diff with working tree можно сравнить свой бранч с main и подтянуть в свой бранч те, файлы и папки, которые не должны отличаться от main.

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавил замечания по работе с БД

def select(self, query, params=None):
self.cursor.execute(query, params or ())
rows = self.cursor.fetchall()
columns = [desc[0] for desc in self.cursor.description]
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Чтоб не заморачиваться с колонками (стр.30-31), достаточно перед исполнением запроса прописать self.cursor.row_factory = sqlite3.Row

results = [dict(zip(columns, row)) for row in rows]
return json.dumps(results, indent=4)

# Пример использования:
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Код в глобальной области видимости стоит помещать под if __name__ == "__main__":

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants