python类实用程序

class-tools的Python项目详细描述


python类实用程序

pipeline statuscoverage reportdocumentationPyPI

class-tools是python类的实用程序集合,作者 经常需要。

我能用class-tools做什么?

快速向类添加属性

fromclass_tools.decoratorsimportwrapper_property@wrapper_property("name",default=lambda:"Bob",doc="The dog's name")@wrapper_property("toy",default=lambda:"ball")@wrapper_property("sharp_teeth",default=lambda:4,type=int)classDog:passdog=Dog()dog.__doc__# "The dog's name"dog.name# 'Bob'dog.toy# 'ball'dog.sharp_teeth="4"# (set as a string value)dog.sharp_teeth# 4 (returned as int)

添加一个漂亮的__repr__方法

fromclass_tools.decoratorsimport*@with_init_from_properties()@with_repr_like_init_from_properties()@wrapper_property("name")@wrapper_property("furcolor")classCat:passcat=Cat(name="Lucy",furcolor="white")cat# Cat(#     furcolor = 'white',#     name = 'Lucy'# )

使类可按属性进行比较

fromclass_tools.decoratorsimport*@with_eq_comparing_properties()@wrapper_property("name")@wrapper_property("furcolor")classCat:passlucy=Cat()lucy.name="Lucy"lucy.furcolor="white"lucy_clone=Cat()lucy_clone.name="Lucy"lucy_clone.furcolor="white"gary=Cat()gary.name="Gary"lucy==gary# Falselucy==lucy_clone# True

以上均

fromclass_tools.propertyobjectimportPropertyObjectfromclass_tools.decoratorsimportwrapper_property@wrapper_property("name")@wrapper_property("height",type=float)@wrapper_property("friends",type=list,default=list)classGiraffe(PropertyObject):passmatt=Giraffe(name="Matt")matt.height=3gunther=Giraffe(name="Gunther")gunther.friends.append(matt)gunther# Giraffe(#     friends=[Giraffe(#         friends=[],#         height=3.0,#         name='Matt'#     )],#     height=None,#     name='Gunther'# )

安装

最好通过pip安装class-tools包。从任何地方运行:

python3 -m pip install --user class-tools

这将从Python Package Index下载并安装包。

您还可以从存储库根目录安装class-tools

python3 -m pip install --user .

文档

可以找到class-tools包的文档here on GitLab

另外,命令行帮助页python3 -m class-tools -h是您的朋友。

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

推荐PyPI第三方库


热门话题
我们应该在测试java代码时模拟黄瓜测试吗。我们应该在多大程度上使用黄瓜?   Hibernate Weblogic 10.3.4 java。lang.NoSuchMethodError:javax/persistence/spi/PersistenceUnitInfo。getValidationMode()Ljavax/persistence/ValidationMode;   java如何在main()中访问私有静态实例变量   java JMockit无法模拟类的公共final字段   java是否可以返回特定控制器操作的输出(html)?   java如何返回正确类型的列表?   rest-OpenUI/Swagger-java-to-API   java组织。springframework。豆。工厂NoSuchBeanDefinitionException或加载ApplicationContext失败   java使用POST将参数从JSP发送到Servlet   java如何监听特定的按钮按下和主视图用户交互?   java如何让gradle在本地maven repo中覆盖库?   如何在Java中“合并”两个URI?   java如何制作一个方法来移动数组中的字符?   使用来自java的命令启动powershell窗口   java垃圾收集器和匿名类   java如何为CellTable(GWT 2.4)中的ImageResourceCell创建PanelPopup?