Python 重构Tensorflow标志

Python 重构Tensorflow标志,python,tensorflow,Python,Tensorflow,在使用了许多具有相同Tensorflow标志的python脚本之后,我厌倦了为每次更改更新多个标志,因此决定将tf.app.FLAGS重构为一个单独的类,我可以跨脚本重用它 然而,出于某种奇怪的原因,每当我以不同的方法使用self.flags时,它都无法识别先前设置的标志。例如,下面的类对于flagproject\u dir2很好,但是对于flagproject\u dir3 `class MyClass(): def __init__(self): self.flags = t

在使用了许多具有相同Tensorflow标志的python脚本之后,我厌倦了为每次更改更新多个标志,因此决定将
tf.app.FLAGS
重构为一个单独的类,我可以跨脚本重用它

然而,出于某种奇怪的原因,每当我以不同的方法使用
self.flags
时,它都无法识别先前设置的标志。例如,下面的类对于flag
project\u dir2
很好,但是对于flag
project\u dir3

`class MyClass():
   def __init__(self):
     self.flags = tf.app.flags
     self.FLAGS = self.flags.FLAGS

     #test code that works here
     self.flags.DEFINE_string("project_dir2", "aValue", "project directory")
     print("This will print correctly: "+self.FLAGS.project_dir2)
     self.my_function()

  def my_function(self):
     #test code that fails
     self.flags.DEFINE_string("project_dir3", "aValue", "project directory")
     print("This will fail: "+self.FLAGS.project_dir3)`
我得到以下例外情况:

AttributeError:project\u dir2
异常TypeError:忽略中的TypeError(“'NoneType'对象不可调用“,”)


有什么明显的我做错了吗?或者这是你不能用Tensorflow标志来做的事情?这是否意味着无法跨脚本重构常用的标志设置?

似乎有一个名为
\u parse\u flags()
的内部方法被调用。您可以在更新后手动调用它


tf.flags上的背景-这是对Google库的部分重新实现,因此缺少功能/文档。做一些更聪明的事情,比如插入官方gflags()是一种贡献。允许控制详细日志记录(需要重新编译)

似乎有一个名为
\u parse\u flags()
的内部方法被调用。您可以在更新后手动调用它


tf.flags上的背景-这是对Google库的部分重新实现,因此缺少功能/文档。做一些更聪明的事情,比如插入官方gflags()是一种贡献。允许控制详细日志记录(需要重新编译)

非常感谢!现在效果很好。你刚刚帮我节省了好几个小时的工作:-)干杯,非常感谢!现在效果很好。你刚刚帮我节省了好几个小时的工作:-)干杯
  def my_function(self):
    #test code that fails
    self.flags.DEFINE_string("project_dir3", "aValue", "project directory")
    self.flags.FLAGS._parse_flags()