在 Python 中导入两个或多个同名模块

sma*_*art 2 python import time python-3.x

这是给我带来麻烦的代码:

import time
from time import time

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

print (start - end)
Run Code Online (Sandbox Code Playgroud)

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

import time

from time import time
Run Code Online (Sandbox Code Playgroud)

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

lines time()
and time.sleep()
Run Code Online (Sandbox Code Playgroud)

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

Moi*_*dri 7

如何导入两个或多个同名模块?

Python 提供了使用别名导入模块的方法。例如,在您的情况下,您可以执行以下操作:

import time as t   # access "time" as "t"
from time import time as tt  # access "time.time" as "tt"
Run Code Online (Sandbox Code Playgroud)

为了使用,只需使用别名:

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

start = tt()  # equivalent to "start = time.time()"
Run Code Online (Sandbox Code Playgroud)

实际上,您还可以将导入的模块存储在变量中并稍后访问它:

import time
t = time

from time import time
tt = time
Run Code Online (Sandbox Code Playgroud)

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


更适合您的场景的方法

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

import time

time.sleep(10)
time.time()
Run Code Online (Sandbox Code Playgroud)

或者,

from time import time, sleep

sleep(10)
time()
Run Code Online (Sandbox Code Playgroud)