Python--Argparse学习感悟
笔者在https://docs.python.org/2/howto/argparse.html#id1上,学习到了argparse的基本概念和使用规范,学习过后忍不住将自己的一些体会和大家分享一下。
之前经常听一位老师说“如果要学习一个概念的话,最好的方式就是去读原著,读别人嚼过的食物总会少些味道;或者直接针对自己面对的问题,自己看看能不能提出一些概念解决这个问题,然后对比自己的解决方式与别人的优劣”,当时觉得这只是一句玩笑话,认为这在实际当中不具备可操作性,然而此刻笔者却有了一些别样的体会,下面笔者结合argparse谈谈自己的这些体会。
1)在接触argparse之前,我知道argparse做的事情就是给特定程序一些参数,然后该程序解析这些参数,并根据这些参数决定程序的行为。
2)在argparse的实现中,她提出了两个概念:positional argument、optional argument,也就是对程序参数进行了一次分类。分类的根据(笔者认为)是:控制参数、数据参数,控制参数能够改变程序的行为,数据参数向程序提供数据。
如果让我实现实现argparse我会这么做:逐个解析输入的参数,然后根据参数特征,改变程序的行为。这样的坏处是在我们编写程序时,无法形成编程规范,此外,由于参数的类型复杂,实现起来不易。
argparse将参数分为两类的好处有笔者能够体会到的有下面几种:
1)控制参数在程序中出现的位置在应该控制语句之中,例如for、if等,侧重于控制程序的流程(规范)。
2)数据参数更关注的是,如何将文本类型的数据转化为我们需要的类型,侧重于类型的转换(规范)。
总结:将一个问题分解为两个子问题,并且每个子问题具有明显的侧重点,这样能够降低解决子问题的难度,或许这就是一种自上而下的解决问题的方法。比较有趣的是,在分解问题的过程当中,我们可以根据问题的特点提出一些概念,假如这些概念具有普遍性的话,那么这是不是就是所谓的创新呢!
haoguo
17:06:41 2016-11-06
Python--Argparse学习感悟的更多相关文章
- python - argparse 模块学习
python - argparse 模块学习 设置一个解析器 使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数.那么当你的程序运行时,该解析器就可以用于处理命令行参数. 解 ...
- Python基础篇学习感悟:学如不及,犹恐失之
从2019年3月底开始学习Python,4月12日在CSDN发表第一篇博文,时至今日已有4个月零12天. 4个多月的学习,老猿从一个Python小白成长到今天,可以说对Python这门语言已经略知一二 ...
- 利用python深度学习算法来绘图
可以画画啊!可以画画啊!可以画画啊! 对,有趣的事情需要讲三遍. 事情是这样的,通过python的深度学习算法包去训练计算机模仿世界名画的风格,然后应用到另一幅画中,不多说直接上图! 这个是世界名画& ...
- 【目录】Python模块学习系列
目录:Python模块学习笔记 1.Python模块学习 - Paramiko - 主机管理 2.Python模块学习 - Fileinput - 读取文件 3.Python模块学习 - Confi ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- 60分钟Python快速学习(给发哥一个交代)
60分钟Python快速学习 之前和同事谈到Python,每次下班后跑步都是在听他说,例如Python属于“胶水语言啦”,属于“解释型语言啦!”,是“面向对象的语言啦!”,另外没有数据类型,逻辑全靠空 ...
- python爬虫学习(1) —— 从urllib说起
0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...
- python爬虫学习 —— 总目录
开篇 作为一个C党,接触python之后学习了爬虫. 和AC算法题的快感类似,从网络上爬取各种数据也很有意思. 准备写一系列文章,整理一下学习历程,也给后来者提供一点便利. 我是目录 听说你叫爬虫 - ...
- Python正则表达式学习摘要及资料
摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2 ...
- python 线程学习
彩照 一.学习[1] # -*- coding: utf-8 -*- import time import thread def timer(no, interval): cnt = 0 while ...
随机推荐
- python用迭代器方式便利目录下的文件
from pathlib import Path pths = [pth for pth in Path.cwd().iterdir()] 如果是os.listdir()这会返回一个list,文件非常 ...
- Python基础篇【第6篇】: Python模块subprocess
subprocess Python中可以执行shell命令的相关模块和函数有: os.system os.spawn* os.popen* --废弃 popen2.* ...
- GAudio是一个音频播放SDK
gaudio是一个基于C/C++混合编程的跨平台音频库,当前支持windows32/64操作系统 免费使用 - 有问题和建议请联系 谢谢 修改记录1.2013.04.01 初次发布2.2013. ...
- SQL语句Where中使用别名作为判断条件
当我们使用某个表达式作为输出的一列时,我们无法再Where条件中直接使用该列作判断条件. 例如下面的SQL语句: select id, (c1 + c2) as s from t1 where ...
- OpenCV2.3.1在Win7+VS2010下的配置过程(转)
转自:http://blog.csdn.net/mygis2005/article/details/10472717 这篇博客很好的解决了我遇到的问题,所以转到自己的博客里,方便以后进行查阅. 1. ...
- 安装和使用elasticsearch
环境: win7 64位 jdk1.8.0 elasticsearch2.3.3 在官网下载elasticsearch2.3.3:https://www.elastic.co/thank-you? ...
- 关于 C# 调用 JavaWebservice服务,版本不一致的问题
1. A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint. 问题原因: 客户端和服务端的SOAP协议版本不一 ...
- 利用IDL将一个txt文档拆分为多个
测试.txt文档,每47行的格式相同,通过代码每47行存为一个txt,txt文档命名为其第一行数据. 代码如下: file='G:\data\测试.txt' openr,lun,file,/Get_L ...
- 解决UITableView上计时器(Timer)的滑动问题
要想计时器(Timer)不因UITableView的滑动而停止工作,就得探讨一下RunLoop了. RunLoop本质和它的意思一样是运行着的循环,更确切的说是线程中的循环.它用来接受循环中的事件和安 ...
- Android IOS WebRTC 音视频开发总结(七九)-- WebRTC选择H.264的四大理由
本文主要介绍WebRTC选择H.264的理由(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacke ...