经常看到下面这样的情况, 在一个b.py文件里,有下面这样的代码
b.py:
import tensorflow as tf
flags = tf.app.flags
FLAGS = flags.FLAGS
print(FLAGS.learning_rate)
可是在这个文件里,并没有定义FLAGS.learning_rate 是什么,为什么没有报错呢?
原因是这样的:
FLAGS
是一个全局变量。 比如我现在有一个a.py文件,里面的内容是:
import tensorflow as tf
flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_float('learning_rate', 0.01, 'initial learning rate.')
import b # 注意这里的调用
在a.py中定义了FLAGS.learning_rate 的值,在b.py中可以直接使用在a.py中定义的FLAG
在a.py中的import b,会使运行a.py 的结果是0.01