PYTHON中的IMPORT以及__FUTURE__和ABSL的FLAGS使用

PYTHON中的IMPORT以及__FUTURE__和ABSL的FLAGS使用

zhuan:  https://www.freesion.com/article/742943624/

1.使用__FUTURE__模块 

from __future__ import absolute_import

from __future__ import division

from __future__ import print_function

Python 3.x引入了一些与Python 2不兼容的关键字和特性。在Python 2中,可以通过内置的__future__模块导入这些新内容。如果你希望在Python 2环境下写的代码也可以在Python 3.x中运行,那么建议使用__future__模块

1.1 from __future__ import absolute_import:

相对与绝对导入

1.2 from __future__ import division

精确除法

1.3 from __future__ import print_function

print用法

2.使用ABSL模块


 
from absl import app

from absl import flags

from absl import logging

程序中如何使用absl输入参数


import sys


from absl import app

from absl import flags

from absl import logging


#设置参数,第一个是参数名称,第二个是参数默认值,无默认值可取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

#打印时间,以及Python版本号

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)

打开终端或者Windows的命令提示符,输入python 文件名 -help就可以查看文件参数信息,例如:

53e065b7ab6b944ab8d6704132f5fa7b.png

 

输入参数方式:

163d986e2bd54db86d0e11dd1a39531f.png

 

 但是一直都有提示很烦:


 
F:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\absl\flags\_validators.py:359: UserWarning: Flag --str_1 has a non-None default value; therefore, mark_flag_as_required will pass even if flag is not specified in the command line!

'command line!' % flag_name)

F:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\absl\flags\_validators.py:359: UserWarning: Flag --str_2 has a non-None default value; therefore, mark_flag_as_required will pass even if flag is not specified in the command line!

'command line!' % flag_name)

F:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\absl\flags\_validators.py:359: UserWarning: Flag --num_1 has a non-None default value; therefore, mark_flag_as_required will pass even if flag is not specified in the command line!

'command line!' % flag_name)

F:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\absl\flags\_validators.py:359: UserWarning: Flag --num_2 has a non-None default value; therefore, mark_flag_as_required will pass even if flag is not specified in the command line!

'command line!' % flag_name)

 

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读