TypeError: 'module'对象不可调用 - 使用datetime
TypeError: 'module'对象不可调用 - 使用datetime
这个问题已经在这里有了答案:
对不起,我没有找到其他的解决方法,所以我创建了一个新的问题。
我正在尝试运行一个代码,它会在屏幕上打印当前的小时、分钟和秒数。我使用的代码片段是:
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 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()
和day()
是程序在经过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()
中的某些问题导致了错误。有什么想法吗?谢谢!
admin 更改状态以发布 2023年5月24日
这对我起了作用,尽量不要创建自己的time()方法,我将其重命名为"my_time()"。
time模块定义了许多函数,因此您可以只是"import 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()