Roh*_*dey 3 python python-import
我有一个简单的time.py文件:
import datetime
import time
import re
def cnvrt1(time):
hr = int(re.split(":",time)[0])
min = int(re.split(":",time)[1])
sec = int(re.split(" ",re.split(':',time)[2])[0])
ampm = re.split(" ",re.split(':',time)[2])[1][0]
zone = re.split(" ",re.split(':',time)[2])[2][0]
if ampm == 'P' && hr < 12 :
hr = hr + 12
elif ampm == 'A' && hr == 12 :
hr = hr - 12;
dt = datetime.datetime.strptime(year=2013,month=10,day=22,hour=hr,minute=min,second=sec)
res1 = time.mktime(dt.timetuple())
if zone =='M':
res1 = res1 - 3600000;
if zone =='C' :
res1 = res1 - 3600000*2;
if zone == 'E' :
res1 = res1 - 3600000*3;
return res1
Run Code Online (Sandbox Code Playgroud)
但是,当我说from time import cnvrt1,它说ImportError: can't import name 'cnvrt1'.谁能指出我可能做错了什么?
Mar*_*ers 11
您使用的是错误的名称.目前已经命名的模块time在标准库中,并且该模块可能已经被你正在使用其他代码进口.您甚至import time在此处发布的代码中使用,否则将创建循环导入.
最好的选择是将此模块重命名为其他内容.
如果您使用的是Python 3并放在time.py包中,则可以将导入限定在当前包中:
from .time import cnvrt1
Run Code Online (Sandbox Code Playgroud)
请注意..这将允许您保留当前名称; 默认情况下,Python 3切换到使用绝对导入,并且time包内的模块不会与全局time模块冲突.
您还在模块中使用了无效的Python语法.Python使用and,而不是&&布尔逻辑:
if ampm == 'P' && hr < 12 :
Run Code Online (Sandbox Code Playgroud)
应该
if ampm == 'P' and hr < 12:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |