Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 What is the correct type hint when you want to accept Iterable but not Dictionary
#1
How would I indicate, using a type hint, that the function only works with a List type data structure containing only int?

I researched a little deeper and from the documentation, I found:

Quote:An object capable of returning its members one at a time. Examples of iterables include all sequence types (such as list, str, and tuple) and some non-sequence types like dict, file objects...

So a dictionary is not a sequence type, but List is, so is Sequence the appropriate type hint?

Obviously, I would filter out str, and dict, but I would like a type hint as well.

def unpack(sequence_to_unpack : Sequence[int]):
    pass
Is the above correct?
Quote
#2
(Mar-05-2019, 03:39 AM)LadySvetlana Wrote: How would I indicate, using a type hint, that the function only works with a List type data structure containing only int?

What's wrong with List[int]?

From casual reading of typing - Support for type hints I have impression that this will deliver desired result (hints that function only works with List type containing only int).
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Life of Brian: Conjugate the verb, "to go" !
Quote
#3
(Mar-05-2019, 11:01 AM)perfringo Wrote: What's wrong with List[int]?

From casual reading of typing - Support for type hints I have impression that this will deliver desired result (hints that function only works with List type containing only int).

I had List[int] at first, but I was given the advice that I should use the abstract version in this case Sequence, but Sequence means alot of things, List, tuple, and str, my method is not meant to work with str.

List[int] solves my problem, but is it code smell?

What I don't understand is, in this case, type hints don't enforce or prevent someone from passing another collection or type. I'm still responsible for checking the types and rejecting what I don't want. I don't see a problem with List[int].
Quote
#4
Quote:but I was given the advice that I should use the abstract version in this case Sequence

Sounds like bad advice. Why did you take it.
Quote
#5
(Mar-05-2019, 05:42 PM)woooee Wrote:
Quote:but I was given the advice that I should use the abstract version in this case Sequence

Sounds like bad advice. Why did you take it.

See the whole conversation on Reddit.
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  Help with finding correct topic in Python learning yahya01 1 227 Jun-06-2019, 05:01 PM
Last Post: buran
  Return in correct json format UtiliseIT 3 259 May-13-2019, 11:24 AM
Last Post: snippsat
  How to continue in loop until correct input received sunnyarora 10 355 May-04-2019, 02:37 PM
Last Post: Yoriz
  Convert List of Dictionary to dictionary of dictionary list in python kk230689 2 191 Apr-27-2019, 03:13 AM
Last Post: perfringo
  Pyodbc does not accept variable from tkinter diegoctn 9 378 Feb-12-2019, 05:12 PM
Last Post: Larz60+
  The code seems correct but my files aren't getting deleted taffylim69 1 261 Feb-03-2019, 11:00 AM
Last Post: Larz60+
  numpynot associted with correct python version ErnestTBass 17 757 Jan-16-2019, 02:47 PM
Last Post: ErnestTBass
  Correct number wrong position func. albry 5 392 Jan-11-2019, 04:01 PM
Last Post: Larz60+
  Function not returning correct value ActualNoob 3 291 Jan-11-2019, 12:35 AM
Last Post: stullis
  TypeError: 'int' object is not iterable shan1403 7 870 Dec-25-2018, 08:36 PM
Last Post: ichabod801

Forum Jump:


Users browsing this thread: 1 Guest(s)