3 回答
TA贡献1111条经验 获得超0个赞
避免在顶层编写代码(声明以外的代码),main()在要直接执行的文件中使用函数:
def main():
condition = True
if condition:
do_stuff()
def do_stuff():
it_worked = True
if __name__ == '__main__':
main()
这样,你只需要确保的if..main结构如下main()功能(例如,将其放置在文件的结尾),其余的可以按任何顺序排列。在执行时间之前,文件将被完全解析(因此可以解析模块中定义的所有名称)main()。
TA贡献1865条经验 获得超7个赞
在Python中,定义函数是在运行时发生的行为,而不是在编译时发生的行为。在该操作期间,将在编译时编译的代码分配给该函数的名称。然后,该名称是当前作用域中的变量。以后可以覆盖它,因为其他任何变量都可以:
def f():
print 42
f() # will print 42
def f():
print 23
f() # will print 23
您甚至可以将其他值之类的函数分配给变量:
def f():
print 42
g = 23
f() # will print 42
g # will print 23
f, g = g, f
f # will print 23
g() # will print 42
当您说您没有用其他语言遇到此问题时,这是因为您所指的其他语言没有被解释为脚本。bash例如,尝试类似的事情,您会发现其他语言也可以使用Python。
添加回答
举报