在Python中导入两个或多个具有相同名称的模块

时间:2018-01-09 00:26:10

标签: python python-3.x time import

这是导致我麻烦的代码:

import time
from time import time

time.sleep(1)
start=time()
input=raw_input(' ')
end=time()
time.sleep(1)

print (start - end)

问题是以下两个与time同名的导入:

import time

from time import time

如何在我的代码中访问这两个模块?我需要在我的代码中同时使用以下两行:

lines time()
and time.sleep()

但是一旦导入,第二个模块会覆盖第一个模块。

2 个答案:

答案 0 :(得分:2)

如何导入两个或多个具有相同名称的模块?

Python提供了使用别名导入模块的方法。例如,在您的情况下,您可以这样做:

import time as t   # access "time" as "t"
from time import time as tt  # access "time.time" as "tt"

要使用,只需使用别名:

t.sleep(1)   # equivalent to "time.sleep(1)"

start = tt()  # equivalent to "start = time.time()"

实际上,您也可以将导入的模块存储在变量中,然后再将其存储起来:

import time
t = time

from time import time
tt = time

但是,当Python已经支持别名时,为什么要这样做呢?

更好地处理您的方案

我的上述答案针对任何此类一般情况。虽然对于您的具体问题Turksarama's answer更有意义,因为time.sleeptime.time属于同一模块。只需导入它们并一起使用它们。例如:

import time

time.sleep(10)
time.time()

OR,

from time import time, sleep

sleep(10)
time()

答案 1 :(得分:2)

我会单独导入睡眠。

from time import time, sleep

sleep(1)
start=time()
# changed input to inp, input is already an inbuilt function so you shouldn't shadow it.
inp=raw_input(' ')
# you had end = sleep(1) here, but sleep returns None
sleep(1)
end=time()

print (start - end)