My script:
from qgis.core import *
import qgis.utils
import processing, os, sys, glob
polys = QgsVectorLayer("/Users/john/shapefile/layer.shp","intersection","ogr")
output = "/Users/john/shapefile/intersection.shp"
processing.run("saga:polygonselfintersection", polys, output)
Generates the return message:
if param not in parameters or parameters[param.name()] is None: TypeError: argument of type 'QgsVectorLayer' is not iterable
Best Answer
Tested in QGIS 3.6.0. I also needed to check some layers for its intersecting features and found that for me raw geometry loop works much faster than saga algorithm. In my case I had three polygon layers which I had to check. Here is a code:
Here are the results:
In general this might not be too significant here but in case of checking much more layers raw geometry loop can be faster.