前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python中如何定义函数的传入参数是option的_如何将几个参数列表传递给@ click.option…

python中如何定义函数的传入参数是option的_如何将几个参数列表传递给@ click.option…

作者头像
Java架构师必看
发布于 2021-08-23 02:34:40
发布于 2021-08-23 02:34:40
8.3K0
举报
文章被收录于专栏:Java架构师必看Java架构师必看

如果通过使用自定义选项类将列表格式化为python列表的字符串文字,则可以强制单击以获取多个列表参数:

自定义类:

import click

import ast

class PythonLiteralOption(click.Option):

def type_cast_value(self, ctx, value):

try:

return ast.literal_eval(value)

except:

raise click.BadParameter(value)

该类将使用Python的Abstract Syntax Tree模块将参数解析为python文字.

自定义类用法:

要使用自定义类,请将cls参数传递给@ click.option()装饰器,如:

@click.option('--option1', cls=PythonLiteralOption, default=[])

这是如何运作的?

这是有效的,因为click是一个设计良好的OO框架. @ click.option()装饰器通常实例化click.Option对象,但允许使用cls参数覆盖此行为.因此,从我们自己的类中继承click.Option并过度使用所需的方法是一个相对容易的事情.

在这种情况下,我们遍历click.Option.type_cast_value()然后调用ast.literal_eval()来解析列表.

测试代码:

@click.command(context_settings=dict(help_option_names=['-h', '--help']))

@click.option('--option1', cls=PythonLiteralOption, default=[])

@click.option('--option2', cls=PythonLiteralOption, default=[])

def cli(option1, option2):

click.echo("Option 1, type: {} value: {}".format(

type(option1), option1))

click.echo("Option 2, type: {} value: {}".format(

type(option2), option2))

# do stuff

if __name__ == '__main__':

import shlex

cli(shlex.split(

'''--option1 '["o11", "o12", "o13"]'

--option2 '["o21", "o22", "o23"]' '''))

检测结果:

Option 1, type: value: ['o11', 'o12', 'o13']

Option 2, type: value: ['o21', 'o22', 'o23']

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Web页面全链路性能优化指南
性能优化不单指优化一个页面的打开速度,在开发环境将一个项目的启动时间缩短使开发体验更好也属于性能优化,大文件上传时为其添加分片上传、断点续传也属于性能优化。在项目开发以及用户使用的过程中,能够让任何一个链路快一点,都可以被叫做性能优化。
唐志远
2022/10/27
1.9K0
Web页面全链路性能优化指南
腾讯企鹅辅导 H5 性能极致优化
H5 项目是企鹅辅导的核心项目,已迭代四年多,包括了课程详情页/老师详情页/报名页/支付页面等页面,构建产物用于企鹅辅导 APP/H5(微信/QQ/浏览器),迭代过程中了也累积了一些性能问题导致页面加载、渲染速度变慢,为了提升用户体验,近期启动了 “H5 性能优化” 项目,针对页面加载速度,渲染速度做了专项优化,下面是对本次优化的总结,包括以下几部分内容:
winty
2021/08/24
1.3K0
腾讯企鹅辅导 H5 性能极致优化
【总结】2072- 前端常见性能优化策略
采用域名分片技术,将资源放到不同的域名下。接触同一个域名最多处理6个TCP链接问题。
pingan8787
2024/06/19
1580
【总结】2072- 前端常见性能优化策略
为什么 Lighthouse 10.0 取消了 TTI 作为观测指标?
Lighthouse是一款网站审核工具,可为开发者提供优化建议和诊断信息,帮助他们改善网站的用户体验。
19组清风
2024/05/04
3650
为什么 Lighthouse 10.0 取消了 TTI 作为观测指标?
干货 | 提升50分,Trip.com 机票基于 PageSpeed 的前端性能优化实践
作者简介 Patrick,携程资深前端开发工程师,专注于前端工程化和性能优化。 前言 网站性能对于用户体验、转化率和流失率、SEO 排名等至关重要,Trip.com 主要用户来自海外,对网站访问性能有更高的要求。能够快速响应的网站通常有机会获取更多流量,并为用户带来更好的体验。 近期我们对 Trip.com 机票站点做了一版性能优化,通过对主要 landing 页面进行系统优化,将页面的 PageSpeed 评分从原本 30 左右提升到 80 分以上。 这里分享在优化过程中的一些经验,将从性能指标、性能测
携程技术
2022/03/04
7150
vue项目你一定会用到的性能优化!
而本渣最近维护的项目恰巧在这个方向下了很大功夫,一些经验之谈奉上,希望对大家有些许帮助!
用户7413032
2022/04/24
1.3K0
vue项目你一定会用到的性能优化!
一个工作三年的前端是如何做性能优化的
你是怎么做性能优化的?关于这一个问题,也是我们前端开发程序员经常会讨论到的问题,接下来这篇文章将总结一下前端方面的性能优化及方式。
程序媛夏天
2024/01/18
2620
一个工作三年的前端是如何做性能优化的
浏览器之性能指标-FID
当用户在浏览器中与网页进行交互时,会触发许多用户输入事件,这些事件会触发浏览器的渲染过程。
前端柒八九
2023/08/10
6020
浏览器之性能指标-FID
浏览器之性能指标-TBT
RAIL 是一种以「用户为中心的性能模型」,它提供了一种考虑性能的结构。该模型将用户体验分解到按键操作(例如,点击、滚动、加载)中,帮助我们为每个操作定义性能目标。
前端柒八九
2023/08/10
1.3K0
浏览器之性能指标-TBT
前端页面性能及其分析工具
本文结合谷歌官方工具 Lighthouse,分析了最新的前端页面性能评分标准,帮助大家更好地理解各项性能指标,以提升并优化相关的前端项目。
前端迷
2021/01/29
3.2K0
被diss性能差,Dan连夜优化React新文档
昨天在开源圈发生个小插曲。起因是有个用户表示:React新文档在文档结构、美观度、性能等各方面都达到很高的标准。
公众号@魔术师卡颂
2022/06/10
9040
被diss性能差,Dan连夜优化React新文档
从龟速 11s 到闪电 1s,详解前端性能优化之首屏加载
全文共6511字/词,阅读大概需要13分钟,太长不看党请直接移步👉「开始优化」部分直接查看优化手段 背景 前段时间公司服务器网络波动,网站访问变慢,一些性能问题也随之暴露了出来。纷纷反馈在这样的弱网条件下,访问新项目时,加载了近1分钟都没加载出来,而访问其他页面顶多也就30-40s。 在网络恢复后,尝试访问了下页面,无缓存首次打开需要等待近11s的时间,最大的资源达到了3.7M... 在对项目做了一些优化处理后,再次无缓存打开可以发现网页几乎是秒开,平均耗时在1s以内 在这里总结记录一下,基本上都是一些
@超人
2021/12/17
3.4K0
从龟速 11s 到闪电 1s,详解前端性能优化之首屏加载
新时代的 Google Web Vitals 性能指标
传统的性能指标如 load time[1] 或 DOMContentLoaded[2] 专注于容易衡量的技术细节,但是它们很难反应出用户所真正关心的是什么。如果你仅仅是把加载速度优化的更快,你很快就会发现网站的用户体验依然很差。一个站点的总加载时间可以很快,但如果它直到所有内容都准备好了才渲染的话,用户只能盯着空白的屏幕一段时间。如果点击了按钮但没有反应,是因为主线程被 JavaScript 任务占满而阻塞了,此时虽然页面已经“加载”,但用户依然会感到沮丧。
前端迷
2021/11/12
1.6K0
如何完成WEB标准的网站重构?
实际重构时建议采用 渐进式重构 策略,优先处理关键路径页面,同时建立 自动化检测机制 防止退化。
裕贞
2025/02/17
880
如何完成WEB标准的网站重构?
浏览器之性能指标_FCP
在前几天,我们写了,关于如何利用fetchpriority对页面资源进行优先级的处理。
前端柒八九
2023/08/01
1.6K0
浏览器之性能指标_FCP
Web前端性能优化工具
可以查看到网站所有资源的请求情况,包括加载时间、尺寸大小、优先级设置及HTTP缓存触发情况等信息,从而帮助我们发现可能由于未进行有效压缩而导致资源尺寸过大的问题,或者未合理配置缓存策略导致二次请求加载时间过长的问题等
yeedomliu
2022/12/03
1.1K0
Web前端性能优化工具
写在 2021 的前端性能优化指南
当收集浏览器端每个用户核心性能指标时,可通过 web-vitals 收集并通过 sendBeacon 上报到打点系统。
山月
2021/10/27
1.3K0
写在 2021 的前端性能优化指南
讲讲前端性能优化
“好事”文章:前端小白使用Docsify+Markdown+‌Vercel,无服务器部署个人知识库
用户7194327
2024/12/04
970
前端性能优化(PC版)
前端的性能优化是一个很宽泛的概念,最终目的都是为了提升用户体验,改善页面性能。面试的时候经常会遇到问谈谈性能优化的手段,这个我分几大部分来概述,具体细节需要自己再针对性的去搜索,只是提供一个索引(太多了写不过来+主要是懒得写)。这里PC端和移动端分开说了,业务场景不同,需要考虑各自的优化手段
红目香薰
2022/11/29
9090
【腾讯云前端性能优化大赛】前端首屏性能优化实战
在现在的网络环境下,用户访问网页时,如果首屏在3S以内是可以接受的,但是如果首屏在10S以上,绝大部分用户都不会继续等待,这样就会导致用户的流失,对于个人或者企业来说都是不可接受的,所以首屏优化已经成为网页必不可少的一部分。
xwj
2021/12/16
1.6K0
相关推荐
Web页面全链路性能优化指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档