| 不具合 ID 番号 |
BUG-000126749 |
| 送信されました | November 14, 2019 |
| 最終更新日 | June 5, 2024 |
| 適用対象 | Portal for ArcGIS |
| 見つかったバージョン | N/A |
| ステータス | Will Not Be Addressed
開発チームは、この問題またはリクエストを検討した結果、これに対処しないことに決定しました。 問題の「参考情報」セクションに、さらに詳細な説明が示されていることがあります。
|
参考情報
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.
対処法
Include the for-loop in a while-loop which runs until the length of the list of layers is equal to zero.
再現の手順