Hi,
You can use the pyautocad library with the AutoCAD COM API or IronPython with the AutoCAD .NET API (and also the COM API).
In addition to what @_gile said, there's the comtypes package.
If you understand AutoCAD's object model, you can invoke almost every method and fetch almost every value.
However, the main downside of comtypes is that you need to supply all arguments to every method you invoke, even the optional ones need to be explicitly supplied.
________
To catch the feeling of how it is "simple in theory" to connect to AutoCAD with python you can see the included code within this question of mine about an issue.
Postcommand doesn't read AutoLisp expression [Python 2.7 & AutoCAD 2016 Windows]
You can use project cadpythonshell, An IronPython console for Autocad and Civil 3d API, include full snoop Database to explore CAD.
https://github.com/chuongmep/CadPythonShell
Chuong Ho