0

我在一个脚本中有两段代码,它们分别可以正常工作,但是因为它们都在同一个脚本中调用“时间”库,所以我收到了错误

"TypeError: 'module' object is not callable"

然而,单独运行它们(注释掉另一个)会产生两个工作代码。下面附上代码示例: 请注意有关如何使代码的每个部分工作的注释。

from sched import scheduler
from time import time, sleep

## If you comment out this line then run periodically will work fine
import time

import datetime
import random

s = scheduler(time, sleep)
random.seed()

def run_periodically(start, end, interval, func):
    event_time = start
    while event_time < end:
        s.enterabs(event_time, 0, func, ())
        event_time += interval + random.randrange(-5, 10)
    s.run()

def pubdate():
    return '{pubdate} {pubtime}'.format(
        pubdate = datetime.date.today().strftime("%d %B %Y"),
        pubtime = time.strftime('%H:%M')
    )

## If you comment out this print the run periodically will work fine
print("""<pubDate>%s</pubDate>""" % (pubdate()))

def runme():
    print "example prints/code"

runme()

## If you comment out this line the pubdate works fine
#run_periodically(time()+5, time()+1000000, 10, runme)

我想知道有什么解决方法可以让这个代码在同一个脚本中使用这两个函数。亲切的问候 AEA

4

1 回答 1

4

您正在重新绑定time到模块:

from time import time, sleep

import time

第二行替换time您首先导入的。从此模块中选择一种导入方式并坚持下去。

import time

s = scheduler(time.time, time.sleep)

# ...
    pubtime = time.strftime('%H:%M')

或使用

from time import time, sleep, strftime

s = scheduler(time, sleep)

# ...
    pubtime = strftime('%H:%M')
于 2013-06-17T23:05:34.837 回答