3

I was using the arcpy.da cursors in ArcGIS 10.2 to iterate for quite some time now yet didn't use "classic" cursors that became available in 10.0 a single time. Is there any situation where one would must (due to a limitation or a similar reason) use arcpy.%type%Cursor instead of arcpy.da.%type%Cursor?

Esri help doesn't seem to outline any case when one would need to use classic one:

ArcGIS 10.1 added a new data access module (arcpy.da) The previously existing cursors (that are still listed under arcpy) are still functional and valid; however, the new arcpy.da cursors include significantly faster performance.

So, I am just wondering why Esri keeps updating the older arcpy cursors in 10.2 when the Data Access module is available since 10.1 and provides "better" cursors? Is there any other reason apart from keeping 10.0 scripts that use arcpy (not da module based) cursors running?

1

I am unaware of any technical reason why you would choose to use an old style cursor over those from the Data Access module when writing new code using ArcGIS 10.1 or later.

However, a lot of code was written using ArcPy cursors at 10.0, and so more return on investment in that development is provided by Esri continuing to support them for backward compatibility of code.

Notwithstanding the above, I do occasionally use an "old style" cursor in test code because I find the syntax slightly easier to remember.

My expectation is that "old style" cursors will be deprecated at some point in the future of ArcGIS for Desktop, but probably not for quite some time, and at the same time would not be surprised to see Data Access style cursors being the only ones available in ArcGIS Professional.

  • 1
    I tend to use the older style when teaching people who are learning python and scripting for the first time as the syntax is easier to explain. – Hornbydd Nov 10 '13 at 19:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.