J'ai un module défini par l'utilisateur (appelé test.py) en tant que tel:

def getLastDate(currDt):
    prevDt = (currDt - dt.timedelta(days=1))
    return prevDt

J'essaie de l'appeler à partir d'un autre script python:

import datetime as dt
import test
currDt = dt.date.today()
print(test.getLastDate(currDt))

Le problème est que lorsque je l'exécute, la portée de ceci est telle que le module interne (test.py) est incapable de trouver le module dt et donne l'erreur suivante:

      1 def getLastDate(currDt):
----> 2     prevDt = (currDt - dt.timedelta(days=1))
      3     return prevDt

NameError: name 'dt' is not defined

Dois-je recharger le module datetime dans mon module test.py? Cela ne me semble pas juste.

Merci d'avance pour votre aide.

0
AsimH 9 mars 2019 à 15:23

2 réponses

Meilleure réponse

Oui, comme il est écrit, vous devrez importer datetime dans test.py.

Si vous voulez éviter d'importer deux fois datetime, vous pouvez simplement l'importer dans test.py et réécrire votre fonction comme:

def getLastDate(currDt, delta):
    prevDt = (currDt - dt.timedelta(days=delta))
    return prevDt
0
ame 9 mars 2019 à 12:36

Vous devez également importer dt dans le fichier test.py

#test.py
import datetime as dt
def getLastDate(currDt):
    prevDt = (currDt - dt.timedelta(days=1))
    return prevDt
0
saurabh jadhav 9 mars 2019 à 12:35