话说好久没有写博客了,是时候写起来了!

argparse的参数在使用parse_args()后保存在了Namespace()中了,我们可以通过vars()来将其中的属性以键值对的字典形式返回

如下所示:

import argparseargs = argparse.Namespace()
args.arg1 = 1
args.arg2 = ['d']
args.arg3 = {'e':6}
print(args)
print(vars(args))

结果如下:

#Namespace(arg1=1, arg2=['d'], arg3={'e': 6})
#{'arg1': 1, 'arg2': ['d'], 'arg3': {'e': 6}}

如果参数多的时候,我们可以考虑将这些参数一次性都导入到一个类的__dict__属性中,如下所示:

class Args():def __init__(self):self.__dict__.update(vars(args))print(self.__dict__)#实例化类
args = Args()
#打印的输出
{'arg1': 1, 'arg2': ['d'], 'arg3': {'e': 6}}

这个时候我们就需要了解一下这个__dict__属性了

class A:a = 1def __init__(self):self.a = 2#查看该class的__dict__和实例的__dict__a_class = A()
print(a_class.__dict__)
print(A.__dict__)

结果如下:

#实例的dict
{'a': 2}
#类的__dict__
{'__module__': '__main__', 'a': 1, '__init__': <function A.__init__ at 0x031810C0>, '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None}

可以看到实例的dict中用的是self.a,而类的属性里面的a的值是1,这也说明了__init__()是在实例化的时候执行的,在执行的时候,a的值变成了2。

综上,我们可以通过一次性将args倒入到类中的__dict__属性中来实现快速添加参数的方式。

快速将argparse的参数倒入到类中的__dict__相关推荐

  1. 第8.12节 Python类中使用__dict__定义实例变量和方法

    上节介绍了使用实例的__dict__查看实例的自定义属性,其实还可以直接使用__dict__定义实例变量和实例方法. 一. 使用__dict__定义实例变量 语法: 对象名. dict[属性名] = ...

  2. java string.substring 参数,Java,String类中的subString()方法,stringsubstring

    Java,String类中的subString()方法,stringsubstring public class TestStringSubString { // main函数 public stat ...

  3. python类中的__dict__

    直接上代码: class Person(object): name = 'python' age = 18 def __init__(self): self.sex = 'boy' self.like ...

  4. springboot 在配置文件写参数注入到类中

    @Configuration//配置文件位置@PropertySource("classpath:city.properties")//前缀@ConfigurationProper ...

  5. Python类中的__dict__属性

    __dict__属性是一个字典(dict),它包含了该对象所有的属性. 下面用pytorch中的torchvision.models作比喻: [input]:import torchvision.mo ...

  6. Java类中this关键字和static关键字的用法详解

    今天给大家总结介绍一下Java类中this关键字和static关键字的用法. 文章目录 this关键字用法: 1:修饰属性,表示调用类中的成员变量 2:this修饰方法 3:this表示当前对象的引用 ...

  7. php tp3 操作绑定到类,快速入门 17:操作绑定到类

    # 快速入门(十七):操作绑定到类 如果你的应用规模比较大,每个操作方法彼此相对独立,那么就可以尝试下操作绑定到类的功能. ## 定义 系统提供了把每个操作方法定位到一个类的功能,可以让你的开发工作更 ...

  8. 如何定义带有可选参数的函数python_Python如何定义有可选参数的元类

    问题 你想定义一个元类,允许类定义时提供可选参数,这样可以控制或配置类型的创建过程. 解决方案 在定义类的时候,Python允许我们使用 ``metaclass``关键字参数来指定特定的元类. 例如使 ...

  9. python命令行参数解析OptionParser类用法实例

    python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下:     from opt ...

最新文章

  1. js-ES6学习笔记-Iterator和for-of循环
  2. SQL查询语句大全集锦(一)
  3. Mysql 获取当月和上个月第一天和最后一天的解决方案
  4. JZOJ 3947 . 【省常中JSOI模拟】收历史作业
  5. nodejs和python和php_PHP和Nodejs能配合使用吗?
  6. c语言 指针 a= amp b,c语言初学-引用和指针的异同点
  7. Iris recognition papers in the top journals in 2017
  8. 多重选定怎么撤销_多重网络问题怎么解决?如何取消多重网络?
  9. sql 联合_SQL联合,SQL联合全部
  10. 周末献礼 MyVoix2.0.js 麦克风波形绘制(一)
  11. oracle 错误代码问题处理经验汇总
  12. 新观察:企业将全面上云 披露“云计算支出”会是新常态
  13. 商品详情页中特别注意的三件事
  14. 梦幻星空html,HTML5特效展示,梦幻星空
  15. Jenkins自动构建部署项目
  16. mapping 映射的简单操作
  17. MATLAB矩阵行列
  18. ABB机器人基础培训资料整理与总结
  19. 【bzoj1003】[ZJOI2006]物流运输trans 最短路+dp
  20. mumu模拟器安装好xposed后重启到99%不动

热门文章

  1. 分位数回归(Quantile Regression)代码解析
  2. 408计算机组成原理有哪几题,2019考研408计算机组成原理选择题及答案(3)
  3. jquey javascript 绑定点击事件(click事件无反应,因js获取不到当前的点击项)
  4. 原创小说 - 范特西学院(上)
  5. 数学分析 曲面积分与场论初步(第22章)
  6. PS 学习笔记 18-加深工具组
  7. GoDaddy 推出第四代虚拟主机
  8. 清除盗游戏帐号的密西木马变种(Trojan.PSW.Misc.r)等
  9. Linux热补丁的实现
  10. linux下man手册汉化后,英文man手册被覆盖的解决办法