I oftentimes see classes containing def execute(self) and def run()
Does python automatically pick this up like int main() in C++?
No. Not unless your script is loaded inside some wrapper code that in turn executes your file's run or execute function.
Why do classes have Def Run() and Def Execute()?