pythonargpar传入布尔参数fal不生效的解决

更新时间:2023-05-08 14:22:15 阅读: 评论:0

pythonargpar传⼊布尔参数fal不⽣效的解决
跑代码时,在命令⾏给python程序传⼊bool参数,但⽆法传⼊Fal,⽆论传⼊True还是Fal,程序⾥⾯都是True。下⾯是代码:
parr.add_argument("--preprocess", type=bool, default=True, help='run prepare_data or not')
⾼端解决⽅案
使⽤可选参数store_true,将上述代码改为:
par.add_argument("--preprocess", action='store_true', help='run prepare_data or not')
在命令⾏执⾏py⽂件时,不加--preprocess,默认传⼊的preprocess参数为Fal;
如果加--preprocess,则传⼊的是True。
还可以将上述代码改为:
par.add_argument("--preprocess", default='Fal', action='store_true', help='run prepare_data or not')
和 1 中表达的意思完全相同。
在命令⾏执⾏py⽂件时,不加--preprocess,默认传⼊的preprocess参数为Fal;
如果加--preprocess,则传⼊的是True。
还可以将上述代码改为:
par.add_argument("--preprocess", default='True', action='store_true', help='run prepare_data or not')
和 1 中表达的意思完全相反。
在命令⾏执⾏py⽂件时,不加--preprocess,默认传⼊的preprocess参数为True;
如果加--preprocess,则传⼊的是Fal。
产⽣的原因和较Low的解决⽅案
猜测可能的原因是数据类型导致的,传⼊的都是string类型,转为bool型时,由于是⾮空字符串,所以转为True。
从这个⾓度去更改的话,由于type参数接收的是callable的参数类型来对我们接收的原始参数做处理,我们可以定义⼀个函数赋值给type参数,⽤它对原始参数做处理:
parr.add_argument("--preprocess", type=str2bool, default='True', help='run prepare_data or not')
下⾯定义这个函数将str类型转换为bool型:
def str2bool(str):
return True if str.lower() == 'true' el Fal
补充知识:parr.add_argument验证格式
我就废话不多说了,还是直接看代码吧!
article_bp = Blueprint('article', __name__, url_prefix='/api')
api = Api(article_bp)
parr = reqpar.RequestParr()
parr.add_argument('name', type=str, help='必须填写名称', required=True)
channel_fields = {
'id': fields.Integer,
'cname': fields.String
}
class ChannelResource(Resource):
def get(lf):
channels = Channel.query.all()
return marshal(channels, channel_fields)
def post(lf):
args = parr.par_args()
if args:
channel = Channel()
channel.save()
return {'msg': '频道添加成功', 'channel': marshal(channel, channel_fields)}
el:
return {'msg': '频道添加失败'}
以上这篇python argpar传⼊布尔参数fal不⽣效的解决就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

本文发布于:2023-05-08 14:22:15,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/870176.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:参数   希望   原因   函数   代码   处理   原始   频道
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图