python笔记

2017.8.19

  1. 常常会碰到一个.py文件里出现if name == 'main':这样的描述:
    • 模块是对象,并且所有的模块都有一个内置属性 name。一个模块的 name 的值取决于您如何应用模块.
    • 如果直接运行.py文件,那么name就是等于‘main'
    • 如果在另外的模块中导入该.py文件,例如导入的是Test.py也就是import Test, 那 Test.name='Test'
    • 所以if name == 'main':之后的代码是保证在运行该.py文件的时候才运行的代码

2017.8.26

  1. 今天在阿里云的PAI上运行自己的代码,为了能从oss中读取参数,需要一个全局的参数传递对象,这个对象就是FLAGS。
  def main(_):
    FLAGS = None
    ...
    data_dir = FLAGS.datadir
    ...
  if __name__ = '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--buckets', type=str,
                      default='',
                      help='input data path')
    FLAGS, _ = parser.parse_known_args()
    main()

这里要注意,main的定义时括号里要加入一个 ,这个本来是上一个输出的参数的意思,这里还不是特别明白为什么这么做。

你可能感兴趣的