首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未在python中设置的标志

未在python中设置的标志
EN

Stack Overflow用户
提问于 2014-10-20 21:59:56
回答 1查看 3.8K关注 0票数 0

在这个例子中,我是如何误用标志的呢?在命令行上设置标志并不覆盖默认值,但当我根据需要设置标志,并且不使用默认值(注释代码)时,它就会被设置为( False)。

代码语言:javascript
复制
import gflags
from gflags import FLAGS

#gflags.DEFINE_bool('use_cache', None, '')
#gflags.MarkFlagAsRequired('use_cache')

gflags.DEFINE_bool('use_cache', True, '')

if __name__ == '__main__':
  if FLAGS.use_cache == True:
    print 'use_cache == True'
  else:
    print 'use_cache == False'

代码语言:javascript
复制
~ python testflags.py --use_cache=False
use_cache == True
~ python testflags.py --help
use_cache == True
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-22 08:38:26

用于解析的调用标志(Argv)。

示例用法:

代码语言:javascript
复制
  FLAGS = gflags.FLAGS

  # Flag names are globally defined!  So in general, we need to be
  # careful to pick names that are unlikely to be used by other libraries.
  # If there is a conflict, we'll get an error at import time.
  gflags.DEFINE_string('name', 'Mr. President', 'your name')
  gflags.DEFINE_integer('age', None, 'your age in years', lower_bound=0)
  gflags.DEFINE_boolean('debug', False, 'produces debugging output')
  gflags.DEFINE_enum('gender', 'male', ['male', 'female'], 'your gender')

  def main(argv):
    try:
      argv = FLAGS(argv)  # parse flags
    except gflags.FlagsError, e:
      print '%s\\nUsage: %s ARGS\\n%s' % (e, sys.argv[0], FLAGS)
      sys.exit(1)
    if FLAGS.debug: print 'non-flag arguments:', argv
    print 'Happy Birthday', FLAGS.name
    if FLAGS.age is not None:
      print 'You are a %d year old %s' % (FLAGS.age, FLAGS.gender)

  if __name__ == '__main__':
    main(sys.argv)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26475635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档