Если вы не хотите определять глобальную переменную наподобие того, что было сказано @Aeossa, вы можете определить декоратор следующим образом:
def call_counter(func):
def helper(*args, **kwargs):
helper.calls += 1
return func(*args, **kwargs)
helper.calls = 0
helper.__name__= func.__name__
return helper
и использовать его вне своей функции следующим образом:
@call_counter
def post(self, request):
data = request.data
print(data)
questionaires_ins = QuestionaireModel.objects.get(random_code=data["random_code"])
questionaires_ser = QuestionaireSerializer(questionaires_ins)
questionaires_ser = questionaires_ser.data
for applicant in data["users"]:
user_ins = User.objects.get(id=applicant["basic_info"]["user_id"])
user_ser = UserSerializer(user_ins)
.......
email_ins = Email()
email_ins.share_questionaire_link(data_to_send)
return Response("You received a questionaire.", status=status.HTTP_200_OK)
после этого каждый раз, когда вы вызываете функцию post
, вы можете получить доступ к числу звонков через calls
.например:
post(SomeRequest)
post(AnotherRequest)
print (post.calls)
# returns 2
для получения дополнительной информации, пожалуйста, прочитайте эту ссылку: https://www.python -course.eu / python3_count_function_calls.php