Στις 28/9/2013 1:19 μμ, ο/η Chris Angelico έγραψε:
On Sat, Sep 28, 2013 at 7:33 PM, Νίκος <nikos.gr...@gmail.com> wrote:
It woould be nice if we could write it as:
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:
if city failed assign to it "Άγνωστη Πόλη" while if host failed
assign it "Άγνωστη Προέλευση"
but without an if statement and in 1 single line.
[ROLL] Rosuav rolls his eyes: 1, 1, totalling 2.
Then split your try blocks! You've already been told this.
ChrisA
No we didn't have said this. if you are referring to this:
ipval = ( os.environ.get('HTTP_CF_CONNECTING_IP') or
os.environ.get('REMOTE_ADDR', "Cannot Resolve") )
city = "Άγνωστη Πόλη"
host = "Άγνωστη Προέλευση"
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:
print( "metrites.py => (%s): " % lastvisit, repr( sys.exc_info() ),
file=open('/tmp/err.out', 'w') )
this is not the case, because we want the string to beassigned to the
variables in the except clause not before the try/except block.
And in 1-liner after the except: too, and value must take only which var
has failed to be assigned one from within try.
--
https://mail.python.org/mailman/listinfo/python-list