| Bug-ID-Nummer |
BUG-000126749 |
| Eingereicht | November 14, 2019 |
| Zuletzt geändert | June 5, 2024 |
| Gilt für | Portal for ArcGIS |
| Gefunden in Version | N/A |
| Status | Will Not Be Addressed
Das Entwicklungsteam hat das Problem bzw. die Anforderung sorgfältig geprüft und ist zu dem Schluss gekommen, es nicht zu beheben bzw. keine weiteren Schritte zu unternehmen. Weitere Erläuterungen finden Sie ggf. im Abschnitt "Zusätzliche Informationen" des jeweiligen Problems.
|
Zusätzliche Informationen
This is not a bug. This behavior is how Python (and languages like JS) handles lists in memory. The user can use the workaround or simply call the clear() method as shown below:
>>> wm = WebMap(wm_item)
>>> wm.layers.clear() # removes all layers by calling the built-in clear() method off List obj
Long explanation
This pattern of looping through elements of a List and removing it not the best practice. Consider the case below:
>>> my_list = list(range(0,10))
>>> print(my_list) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# remove by looping
>>> for element in my_list:
print(element)
my_list.remove(element)
# prints 0,2,4,6,8
>>> print(my_list) # [1, 3, 5, 7, 9]
The issue is reproducible even with simple List objects. The best way to clear a list is to imply initialize it to an empty list [ ] or call clear() method.
Workaround
Include the for-loop in a while-loop which runs until the length of the list of layers is equal to zero.
Schritte zur Reproduzierung