voger wrote:
> Some properties I can see them defined but some others like
> sublocality or administrative_area_level_1 I don't see them defined
> anywhere. Also in the comments in the source code the author says
> 
> #You can also choose a different property to display for each lookup
> #type. #    Example: #        result.country__short_name
> 
> but I can't understand where that __short_name comes from

The relevant code is in the __getattr__ method.  From the Python docs:

> If no class attribute is found, and the object’s class has a
> __getattr__() method, that is called to satisfy the lookup.
>
> -- Source:
> http://docs.python.org/2/reference/datamodel.html

As an aside, your examples are attributes, not methods.  Read the code
below; this is where the magic happens:

    def __getattr__(self, name):
        lookup = name.split('__')
        attribute = lookup[0]

        if (attribute in GeocoderResult.attribute_mapping):
            attribute = GeocoderResult.attribute_mapping[attribute]

        try:
            prop = lookup[1]
        except IndexError:
            prop = 'long_name'

        for elem in self.current_data['address_components']:
            if attribute in elem['types']:
                return elem[prop]
-- 
James Scholes
http://twitter.com/JamesScholes
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to