类型错误:“模块”对象不可调用 \- 使用日期时间

新手上路,请多包涵

对不起没有找到任何其他修复,所以我创建了一个新问题。我正在尝试运行将当前小时、分钟和秒打印到屏幕上的代码。我用来执行此操作的代码是:

 def time():
    import datetime
    import time
    time.sleep(1)
    nowTime = datetime.now()
    print ('Right now it's %s hours, %s minutes and %s seconds.' % (nowTime.hour,nowTime.minute,nowTime.second))
    time.sleep(5)

当这段代码尝试执行时出现以下错误:

>  Traceback (most recent call last):
>   File "/Users/Teolicht/Desktop/Python/testy.py", line 219, in <module>
>     start()
>   File "/Users/Teolicht/Desktop/Python/testy.py", line 18, in start
>     questions()
>   File "/Users/Teolicht/Desktop/Python/testy.py", line 34, in questions
>     day()
>   File "/Users/Teolicht/Desktop/Python/testy.py", line 52, in day
>     time()
> TypeError: 'module' object is not callable
>
> ```

`start()` , `questions()` and `day()` are some other functions the program went through before going through `time()` .如果我尝试直接执行 `time()` ,它会起作用!所以,这里是 `time()` 函数从头到尾的完整代码:

from datetime import datetime import time import random import sys

def start(): import time name = input(‘Hi. What is your name? ‘) print (‘Nice to meet you, ’ + str(name) + ‘.’) time.sleep(1) print (‘How old are you?’) age = input() time.sleep(1) print (age + ‘! Cool.’) time.sleep(2) questions()

def questions(): import time print (‘Some things you can ask me:’) time.sleep(1) print (‘• What day is today? (qdh)’) time.sleep(1) print (‘• What time is it? (qhs)’) time.sleep(1) print (‘• I want to play a game! (qjj)’) time.sleep(1) print (‘• How many days till my birthday? (qda)’) time.sleep(1) questionsAnswer = input() if questionsAnswer == ‘qdh’: day() elif questionsAnswer == ‘qhs’: time() elif questionsAnswer == ‘qjj’: game() else: birthday()

def day(): import time time.sleep(1) nowDay = datetime.now() print (‘Today is %s/%s/%s’ % (nowDay.day,nowDay.month,nowDay.year)) time.sleep(2) dayAnswer = input(‘Want to know what time it is? “Y” for yes and “N” for no: ‘).lower() if dayAnswer == ‘n’: questions() else: time()

def time(): import time time.sleep(1) nowTime = datetime.now() print (‘Right now it’s %s hours, %s minutes and %s seconds.’ % (nowTime.hour,nowTime.minute,nowTime.second)) time.sleep(5) questions() …

”`

它可能是 start()questions()day() 导致错误的原因。有任何想法吗?非常感谢!

原文由 teolicht 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 640
2 个回答

它对我有用,尽量不要创建自己的 time() 方法,我将其重命名为“my_time()”。

time 模块定义了很多函数,或者你只是“导入时间”或者你需要指定你想要导入的每个函数,比如“from time import sleep”

 from datetime import datetime
from time import time, sleep
import random
import sys

def questions():
    print ('Some things you can ask me:')
    sleep(1)
    print ('• What day is today? (qdh)')
    sleep(1)
    print ('• What time is it? (qhs)')
    sleep(1)
    print ('• I want to play a game! (qjj)')
    sleep(1)
    print ('• How many days till my birthday? (qda)')
    sleep(1)
    questionsAnswer = input()
    if questionsAnswer == 'qdh':
        day()
    elif questionsAnswer == 'qhs':
        my_time()
    elif questionsAnswer == 'qjj':
        my_game()
    else:
        my_birthday()

def day():
    sleep(1)
    nowDay = datetime.now()
    print ('Today is %s/%s/%s' % (nowDay.day,nowDay.month,nowDay.year))
    sleep(2)
    dayAnswer = input('Want to know what time it is? "Y" for yes and "N" for no: ').lower()
    if dayAnswer == 'n':
        questions()
    else:
        my_time()

def my_time():
    sleep(1)
    nowTime = datetime.now()
    print ('Right now it\'s %s hours, %s minutes and %s seconds.' % (nowTime.hour, nowTime.minute, nowTime.second))
    sleep(5)
    questions()

def my_game():
    pass

def my_birthday():
    pass

#def start():
name = input('Hi. What is your name? ')
print ('Nice to meet you, ' + str(name) + '.')
sleep(1)
print ('How old are you?')
age = input()
sleep(1)
print (age + '! Cool.')
sleep(2)
questions()

原文由 Bruno Romano 发布,翻译遵循 CC BY-SA 3.0 许可协议

在你的指挥下

nowTime = datetime.now()

datetime 是没有方法的 模块 now()

你可能想要

nowTime = datetime.datetime.now()

where the first datetime is the module , and the second one is the class in it - with the classmethod now() which creates an object 当前本地日期和时间。

原文由 MarianD 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题