So, C++ is essentially an expansion of the C language and because of that it gives the ability to do a lot of low level things like C does. Additionally, you can manage your own memory and if used well, C++ if very fast when executing. Python is interpreted, which means it is essentially compile every time you run the program, which means it is slower to start. On top of that, Python doesn't really support multithreading and a lot of people have issues with it's inferred typing.
Python has a lot of really good libraries for data/scientific needs but the low level abilities of C++ means that it is generally the superior language in terms of pure logic. To say any language is "the best language" in generally is a uninformed statement, most languages excel at something, because they were created with something specific in mind. The real measure of good software engineering is picking a language that meets the needs of your project.