Threading.thread.run() documentation has weird prose

This sentence is ungrammatical, and I am not entirely sure what it is trying to communicate:

Using list or tuple as the args argument which passed to the Thread could achieve the same effect.

I’ll grant that “which passed” might have just been a typo for “which is passed” (similarly, that “a” is simply missing before “list”); but the overall phrasing still seems very strange to me.

Based on the subsequent code example, I think this is intended to convey:

The args argument passed to the Thread constructor can be either a list or a tuple.

but this point seems trivial, and out of place. If anything, the explanation of the target, args and kwargs arguments for the constructor should be expanded instead; or else the preamble “Thread Objects” section should be clearer about how “passing a callable object to the constructor” is used to “specify the activity” of the Thread.

(Aside from that - the args argument can be any Sequence, can’t it? And why give a separate, specific example of args while ignoring kwargs?)

I would open an issue to revise the sentence. Check ‘list or tuple’ versus (sequence? iterable?) either versus the method code or by experiment referenced or copied into the issue.

Edit: possibly after waiting a day for more responses here.

I agree the sentence does not make sense, it could simply be removed.

I’d argue the example is also a bit weird, because the run() method is not meant to be called explicitly by user code.

i wish i’d read this a couple weeks ago. it would have saved me a ton of frustration. but glad i came across it today. it helped clear up lingering confusion because, yeah. it makes no dang sense.