类映射到属性。

kwargs_obj的Python项目详细描述


夸尔格斯目标

https://badge.fury.io/py/kwargs_obj.pnghttps://pypip.in/d/kwargs_obj/badge.png

.__init__(self, **kwargs)映射到属性的类。

文件

此模块可用于将**kwargs中的值自动设置为属性,也可用于取消设置的属性。

示例

将**kwargs映射到属性

在这里您可以看到,如何将**kwargs映射到您的属性:

classXex(KwargsObj):def__init__(self,**kwargs):self.something=Noneself.something_else=Noneself._kwargs_to_attributes(kwargs)

这将允许传递设置something_elsesomething_different

>>>x=Xex(something=True)>>>x.somethingTrue

取消设置未设置的属性:

>>>x=Xex(asd=True)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>File"<stdin>",line5,in__init__File"kwargs_obj/kwargs_obj.py",line61,in_kwargs_to_attributes"Can't set %s parameter - it is not defined here!"%keyValueError:Can't set asd parameter - it is not defined here!
禁用未设置属性的设置

还修改了.setattr`方法,该方法禁用设置新属性。这对于数据容器来说可能是个好主意。

可以通过设置._all_set属性来触发修改后的.setattr功能:

classXex(KwargsObj):def__init__(self):self.something=Noneself.something_else=Noneself._all_set=True

现在不可能设置新的属性,这可能有助于防止输入错误:

>>>x=Xex()>>>x.asd=TrueTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>File"kwargs_obj/kwargs_obj.py",line50,in__setattr__raiseValueError("%s is not defined in this class!"%name)ValueError:asdisnotdefinedinthisclass!

但您仍然可以重新定义已定义的属性:

>>>x.something=True>>>

更改日志

1.0.0

  • Added tests.
  • Added documentation.
  • Package uploaded to pypi.

0.1.0

  • Project created.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java两个构造函数?   java for(inti:x)做什么?   java如何将一个bean的构造函数参数传递给嵌套bean   java从易趣链接提取项目ID   java多线程BufferedReader   安卓全新应用程序在R.java中抛出“语法错误,插入“}”以完成类体”   java Spring启动依赖注入请求范围的bean   java给定的时间,然后约定和异常处理。和莫基托和朱尼特在一起   与Android Studio的java Oracle数据库连接   在web服务器(Heroku)上承载可运行jar文件(Discord bot)的java   java如何每隔n秒在imageview中更改图像   java不理解“volatile”关键字   java使用JPA编写自定义SQL查询   java如何使用filechannel作为参数来编写对象