if __name__ == "__main__":
意味着当前文件应当用在shell下执行,而不应该作为一个模块被import。
可以参见tf.fun
if __name__ == "__main__":
means current file is executed under a shell instead of imported as a module.
tf.app.run()
As you can see through the file app.py
def run(main=None, argv=None):
"""Runs the program with an optional 'main' function and 'argv' list."""
f = flags.FLAGS
# Extract the args from the optional `argv` list.
args = argv[1:] if argv else None
# Parse the known flags from that list, or from the command
# line otherwise.
# pylint: disable=protected-access
flags_passthrough = f._parse_flags(args=args)
# pylint: enable=protected-access
main = main or sys.modules['__main__'].main
# Call the main function, passing through any arguments
# to the final program.
sys.exit(main(sys.argv[:1] + flags_passthrough))
第一行:
flags_passthrough = f._parse_flags(args=args)
把这些旗子立起来,使用的是python的argparse。这保证了你传给command line的arguments都是合法的。
main = main or sys.modules['__main__'].main
表示如果存在main使用main,否则需要指定。