Как сделать вызов функции после завершения?
Как вызвать operation_1, строго после завершения operation_2?
class A:
def operation_1(self):
print("Выполнен по завершению operation_2")
class B:
def operation_2():
print("Вызов operation_1")
Да, но по факту выдает ошибку. Может можно сделать чтобы после окончания функции появлялось время завершения.
Это время обернуть в переменную и засунуть ее в schedule
missing 1 required positional argument: func
Идея с func хорошая, но почему-то не сработала, хотя так делал, проверю попозже еще разок. Но для меня было бы идеальным получить время окончания в формате (H:M), потому что к этому времени еще хочу привязать другие задачи.
изобразил идею в коде. Но по коду ошибка, не видит переменную a .
import schedule
import time
class B:
def task2():
print("Вызов функции от проверки task")
class A:
def task():
print("Начало проверки")
...
global a
a = time.strftime('\"%H:%M\"') #временная метка, для запуска task2
print(f"Проверка завершена в {a}")
def main():
schedule.every().day.at("20:38").do(A.task)
schedule.every().day.at(a).do(B.task2)
while True:
schedule.run_pending()
time.sleep(1)
if __name__ == "__main__":
main()
Ответы (1 шт):
Если я правильно понял:
class A:
def operation_1(self):
print("Выполнен по завершению operation_2")
class B:
def operation_2(self, func):
print("Вызов operation_1")
func.operation_1()
a = A()
b = B()
b.operation_2(a)
Мы добавили функции operation_2 параметр func, чтобы обратится к методу класса A при ее вызове. И вызывать ее мы будет после выполнения print("Вызов operation_1") посредством обращения к методу класса A - func.operation_1()
Затем мы создали по экземпляру каждого класса и обратились к методу объекта b передав ему аргументом объект a.
На выходе получится:
Вызов operation_1
Выполнен по завершению operation_2