Python与缩进,入门遇到困难。
我刚开始学习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
9 个回答
3
了解一下pass
语句,通常情况下,main
并不是类的一部分。
一个全局的(模块级别的)main()
函数比Alarm.main()
这个类方法要简单。一般来说,main()
函数是在模块级别出现的。
class Alarm:
def timer():
pass
def main():
print ("Timer has Started")
main()
11
你有一个空的定义
def timer():
用
def timer():
pass
来代替。
0
正如其他人提到的,你的代码有个语法错误,因为timer()这个函数里面没有内容。
在Python中,其实根本不需要使用main()这个函数。通常人们用它来表示这个文件是一个顶层程序,而不是一个可以被导入的模块,但这只是个约定。
你可能还会看到这样的写法:
def main():
blah blah
if __name__ == "__main__":
main()
这里的__name__
是一个特殊的变量。如果这个文件被导入了,它会包含模块的名字,这样比较就会失败,main()就不会运行。
对于顶层程序来说,__name__
的值是"__main__
",所以main()函数会被执行。
这样做很有用,因为有时候你的模块在作为程序加载时可能会运行一些测试,但如果你把它导入到一个更大的程序中,就不想让那些测试运行。