On Sun, 29 Sep 2013 13:17:36 +0300, Νίκος wrote: > Στις 29/9/2013 12:50 μμ, ο/η Dave Angel έγραψε: >> ipval = ( os.environ.get('HTTP_CF_CONNECTING_IP') or >> os.environ.get('REMOTE_ADDR', "Cannot Resolve") ) >> try: >> gi = pygeoip.GeoIP('/usr/local/share/GeoIPCity.dat') >> city = gi.time_zone_by_addr( ipval ) >> host = socket.gethostbyaddr( ipval ) [0] >> except socket.gaierror as e: >> gi,city,host=globals().get("gi", "who knows"), globals().get ("city", >> "Άγνωστη Πόλη"), globals().get("host", "Άγνωστη Προέλευση") > > Hello Dave, > > By looking at your code i think that you are tellign the progrma to try > to gri don't know what the function globals() is supposed to do > > but i was thinking more of: > > ipval = ( os.environ.get('HTTP_CF_CONNECTING_IP') or > os.environ.get('REMOTE_ADDR', "Cannot Resolve") ) > try: > city = gi.time_zone_by_addr( ipval ) > host = socket.gethostbyaddr( ipval ) [0] > except socket.gaierror as e: > # We need something here to identify which one of the 2 above variables > or even both of them went wrong, and then assign the appropriate value > to each one of them but i don't know how to write it. > > Is there a function that can tell us which variable failed to be > assigned a value that we can use in order to decide to which variable we > will
Yes, set the default values first, and overwrite them with the successful values when the values are successfully calculated. This is a very common method used in many programming languages. -- Denis McMahon, denismfmcma...@gmail.com -- https://mail.python.org/mailman/listinfo/python-list