2013-04-08 22 views
7

Fuori dal bashing della tastiera casuale, ho finito per notare che c'è una variabile in SciPy chiamata i, che viene assegnata alla stringa '6'. (Può essere diverso su altre macchine?)Che cosa è "scipy.i`?

Ho provato a utilizzare le funzioni di guida integrate, ma non è stato assegnato nulla a scipy.i poiché si riferisce solo a una stringa.

Ho anche cercato i documenti e Google, ma non è venuto fuori nulla.

Potrebbe essere correlato al controllo della versione o qualcosa di simile? A proposito, sto usando Enthought Python su Windows 7 (entrambi a 64 bit).

Questo è lungi dall'essere una domanda critica, sono solo curioso di questo!

risposta

10

Oh, questo è carino. Dal SciPy __init__.py:

# Emit a warning if numpy is too old 
majver, minver = [float(i) for i in _num.version.version.split('.')[:2]] 

In Python 2, list comprehension "fuga" le loro variabili di loop nel campo di applicazione racchiude. E così:

>>> import numpy as _num 
>>> _num.version.version 
'1.6.2' 
>>> _num.version.version.split('.')[:2] 
['1', '6'] 
>>> majver, minver = [float(i) for i in _num.version.version.split('.')[:2]] 
>>> i 
'6' 
+1

Un bel po 'di lavoro investigativo lì ... +1 :) –

+0

Haha! Grazie per la rapida risposta, sospettavo che avesse qualcosa a che fare con i numeri di versione! – PhilMacKay