The principle of duck typing says that you shouldn't care what type of object you have - just whether or not you can do the required action with your object. For this reason the
isinstance
keyword is frowned upon. - -Definition
Nel sotto snippet (funzione) group_tweets_by_state
, in seguito alla definizione della digitazione anatra, l'azione setdefault
viene eseguita sull'oggetto tweets_by_state
aggiungendo l'oggetto tweet
def group_tweets_by_state(tweets):
tweets_by_state = {}
USA_states_center_position = {n: find_center(s) for n, s in us_states.items()}
for tweet in tweets: # tweets are list of dictionaries
if hassattr(tweet, 'setdefault'): # tweet is a dictionary
state_name_key = find_closest_state(tweet, USA_states_center_position)
tweets_by_state.setdefault(state_name_key, []).append(tweet)
return tweets_by_state
La mia comprensione è che la funzione hasattr(tweet, 'setdefault')
è il tipo di controllo tweet
per essere di <class 'dict'>
tipo nello stile di digitazione anatra, prima append.
La mia comprensione è corretta? La funzione group_tweets_by_state
segue la digitazione anatra?