In code, list.clear doesn't throw error - it's just ignored

Jon Ribbens jon+usenet at unequivocal.eu
Sun Nov 13 17:20:23 EST 2022


On 2022-11-13, DFS <nospam at 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)



More information about the Python-list mailing list