We can keep the Cone class but what is some makes a model of a tiny cone and they set the cone base radius to be 0.01, what happens then?

I think you should allow an optional argument on the cylinder to set the second radius (top or bottom) for a case like I just mentioned. Setting the radius to 0.1 is problematic. You should at least move that to an optional arg in the Cone class on the python side.