Aşağıda çalıştığım kod. Anlatabildiğim kadarıyla sorun yok, ama kod parçasını çalıştırmaya çalıştığımda bir hata alıyorum.Timedelta tanımlı değil
import os
import datetime
def parseOptions():
import optparse
parser = optparse.OptionParser(usage= '-h')
parser.add_option('-t', '--type', \
choices= ('Warning', 'Error', 'Information', 'All'), \
help= 'The type of error',
default= 'Warning')
parser.add_option('-g', '--goback', \
type= 'string')
(options, args) = parser.parse_args()
return options
options = parseOptions() now = datetime.datetime.now() subtract = timedelta(hours=options.goback) difference = now - subtract
if options.type=='All' and options.goback==24:
os.startfile('logfile.htm')
else:
print
print 'Type =', options.type,
print
print 'Go Back =', options.goback,'hours'
print difference.strftime("%H:%M:%S %a, %B %d %Y")
print
hata takip gibidir:
Traceback (most recent call last):
File "C:\Python27\Lib\SITE-P~1\PYTHON~2\pywin\framework\scriptutils.py", line 325, in RunScript
exec codeObject in __main__.__dict__
File "C:\Users\user\Desktop\Python\python.py", line 19, in <module>
subtract = timedelta(hours=options.goback)
NameError: name 'timedelta' is not defined
bir Yardım takdir.
Mükemmel, tüm yardımlar için teşekkür ederiz. Kullanımının daha rahat olduğunu düşünüyorum: 'datetime.timedelta' ve türünü int olarak değiştirdim. Tekrar teşekkürler. – Mitchell
Evet, bir kez datetime 'ttetime.timedelta' tarafından timedelta sınıfına atıfta bulunduğunuzda, alışılmışın en iyi uygulaması olacaktır. Buradaki nokta, datetime modülünün içe aktarılması, tanımladığınız tüm isimleri size ulaştırmasıdır, ancak bunları ad alanı aracılığıyla göndermeniz gerekir. Bir modülü içe aktarmanın genel modelini ve daha sonra içeriğine çok sık başvuruyorsunuz. –