【问题标题】:Import two or more module with same name in Python在 Python 中导入两个或多个同名模块
【发布时间】:2018-06-17 23:58:59
【问题描述】:

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

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()

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

【问题讨论】:

    标签: python python-3.x time import


    【解决方案1】:

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

    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()
    

    或者,

    from time import time, sleep
    
    sleep(10)
    time()
    

    【讨论】:

      【解决方案2】:

      我会单独导入 sleep。

      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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-24
        • 1970-01-01
        • 1970-01-01
        • 2017-04-29
        • 2015-05-23
        • 2012-01-31
        • 2011-04-10
        相关资源
        最近更新 更多