Я пытаюсь использовать cProfiling с python.
Мой python проект имеет следующую структуру каталогов:
my-project
├── src
│ ├── lib
│ └── app
│ └── data
│ └── car_sim.py
│
│
│
│
├── ptests
│ ├── src
│ └── lib
│ └── app
│ └── data
│ └── cprofile_test.py
У меня есть функция внутри car_sim.py , которую я хочу создать, и она называется " sim_text». Он содержит функцию с именем:
#car_sim.py
import os
class RootSimulator:
def sim_text(self, text):
return text
Я использую следующий код внутри cprofile_test.py :
#cprofile_test.py
import cProfile
import pstats
import io
import src.lib.app.data.car_sim as car_sim_functions
pr = cProfile.Profile()
pr.enable()
text = 'my blabla sentence' #i can pass in this text below i guess...
#how do i pass to the below????!!
my_result = car_sim_functions.RootSimulator.sim_text()
pr.disable()
s = io.StringIO()
ps = pstats.Stats(pr, stream=s).sort_stats('tottime')
ps.print_stats()
with open('test.txt', 'w+') as f:
f.write(s.getvalue())
Теперь ... когда я запускаю его с помощью команда
python -m cProfile ptests / src / lib / app / data / cprofile_test.py
Я получаю следующую ошибку:
TypeError: sim_text () отсутствует 2 обязательных позиционных аргумента: 'self' и 'text'
Мой вопрос ... Он ожидает 2 аргумента, так как мне передать «Я» Арг. Для 2-го аргумента «текст» я могу передать значение без проблем.