我刚开始学习python,并且正在学习。我大部分来自C语言背景。
class Alarm:
def timer():
def main():
print ("Timer has Started")
main()当我尝试运行这段代码时,我总是得到一个愚蠢的错误:
alarm > python alarm.py
File "alarm.py", line 5
def main():
^
IndentationError: expected an indented block发布于 2009-10-05 07:54:05
正如其他人所指出的,由于timer()没有主体,所以存在语法错误。
在python中根本不需要使用main()。通常,人们使用它来表示文件是顶层程序,而不是要导入的模块,但这只是惯例
你也可能会看到这个成语
def main():
blah blah
if __name__ == "__main__":
main()这里的__name__是一个特殊的变量。如果文件已经导入,它将包含模块名称,因此比较将失败,并且main不会运行。
对于顶层程序,__name__包含"__main__“,因此将运行main()函数。
这很有用,因为有时模块可能会在作为程序加载时运行测试,但如果要将其导入到较大的程序中,则不希望运行这些测试
发布于 2009-10-05 07:24:39
你有一个空的def
def timer():使用
def timer():
pass而不是。
发布于 2009-10-05 07:27:17
了解pass statement,main通常不是课程的一部分。
全局(模块级) main()函数比Alarm.main()类方法简单。通常,main()函数是在模块级实现的。
class Alarm:
def timer():
pass
def main():
print ("Timer has Started")
main()https://stackoverflow.com/questions/1518659
复制相似问题