J'utilise Spyder 3.1.2 (Python 2.7.13). Dans le cadre du démarrage, la console IPython est définie sur "Automatically load Pylab and NumPy modules".Spyder ne reconnaît pas les termes importés
Quand je veux utiliser la méthode NumPy.zeros (forme), je peux l'appeler dans la console IPython sous forme de zéros:
In [12]: zeros(5)
Out[12]: array([ 0., 0., 0., 0., 0.])
Mon problème vient lorsque vous essayez d'appeler les mêmes zéros fonctionnent à partir d'une fichier python séparé.
Si je crée une UseZeros de fonction() dans un fichier Test1.py
"""
filename: Test1.py
"""
def UseZeros():
return zeros(4)
Et je l'appelle à partir d'un fichier séparé, Test2.py:
"""
filename: Test2.py
"""
import Test1
testArr1 = zeros(5)
testArr2 = Test1.UseZeros()
Dans ce script, testArr1 = zeros (5) fonctionne bien, mais lorsque j'appelle Test1.UseZeros(), j'obtiens une erreur indiquant que le nom global 'zeros' n'est pas défini. Est-ce que quelqu'un peut m'aider à comprendre pourquoi lors de l'appel de cette fonction, la console IPython ne reconnaît plus la méthode?
La seule référence que je peux trouver à un similar problem a été corrigée dans une version précédente, et était différente de ce que je vis. La raison pour laquelle j'ai besoin que cela fonctionne est que j'importe des fonctions utilisées par quelqu'un d'autre qui a fait un usage intensif de commandes telles que zéros, uns, sin, cos etc., et je ne veux pas avoir à redéfinir tout.
Merci
Merci Carlos, j'apprécie les commentaires. Va travailler sur mon collègue afin que nous puissions passer à une manière plus conventionnelle de structurer le travail. – GarethC
Merci beaucoup pour votre compréhension, je sais que cela pourrait vous prendre un certain temps. –
Pas du tout, j'étais surtout préoccupé par le fait que je ne pouvais pas aller au travail, quelque chose qui devrait l'être. Heureux de savoir qu'il est conçu pour ne pas fonctionner de cette façon :) – GarethC