flags


1. flags可以幫助我們通過命令行來動態的更改代碼中的參數

test_absl.py :

from absl import app, flags, logging

import sys

#設置參數,第一個是參數名稱,第二個是參數默認值,無默認值可取None,第三個是參數解釋
flags.DEFINE_string('str_1', 'hello', 'Input a string.')
flags.DEFINE_string('str_2', 'world', 'Input a string.')
flags.DEFINE_integer('num_1', 0, 'Input a integer.')
flags.DEFINE_integer('num_2', 0, 'Input a integer.')

FLAGS = flags.FLAGS

def main(argv=()):
    # del argv
    # version = sys.version_info
    # logging.info('Running under Python {0[0]}.{0[1]}.{0[2]}'.format(version))

    str3 = FLAGS.str_1 + FLAGS.str_2
    print(str3)

    c = FLAGS.num_1 * FLAGS.num_2
    print(c)

# 如果當前是從其它模塊調用的該模塊程序,則不會運行main函數!
# 而如果就是直接運行的該模塊程序,則會運行main函數。
if __name__ == '__main__':
    # flags.mark_flag_as_required('str_1')
    # flags.mark_flag_as_required('str_2')
    # flags.mark_flag_as_required('num_1')
    # flags.mark_flag_as_required('num_2')
    # 執行程序中main函數,並解析命令行參數!
    app.run(main)

命令行:

python test_absl.py -help

output:

USAGE: test_absl.py [flags]
flags:

test_absl.py:
  --num_1: Input a integer.
    (default: '0')
    (an integer)
  --num_2: Input a integer.
    (default: '0')
    (an integer)
  --str_1: Input a string.
    (default: 'hello')
  --str_2: Input a string.
    (default: 'world')

命令行:

python test absl.py

output:

helloworld
0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM