On 11/13/2022 5:20 PM, Jon Ribbens wrote:
On 2022-11-13, DFS <nos...@dfs.com> wrote:
In code, list.clear is just ignored.
At the terminal, list.clear shows
<built-in method clear of list object at 0x000001C9CFEC4240>


in code:
x = [1,2,3]
x.clear
print(len(x))
3

at terminal:
x = [1,2,3]
x.clear
<built-in method clear of list object at 0x000001C9CFEC4240>
print(len(x))
3


Caused me an hour of frustration before I noticed list.clear() was what
I needed.

x = [1,2,3]
x.clear()
print(len(x))
0

If you want to catch this sort of mistake automatically then you need
a linter such as pylint:

   $ cat test.py
   """Create an array and print its length"""

   array = [1, 2, 3]
   array.clear
   print(len(array))
   $ pylint -s n test.py
   ************* Module test
   test.py:4:0: W0104: Statement seems to have no effect (pointless-statement)


Thanks, I should use linters more often.

But why is it allowed in the first place?

I stared at list.clear and surrounding code a dozen times and said "Looks right! Why isn't it clearing the list?!?!"

2 parens later and I'm golden!






--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to