从__init__中为您的Python类创建一个__repr__
项目描述
crepr
为您的Python类创建一个__repr__
。
crepr
是一个Python脚本,它接受一个文件名作为命令行参数,导入指定的模块,然后为模块中定义的每个类添加或删除一个__repr__
方法。它使用类中__init__
方法中的定义来创建一个有用的对象表示。发音为/kɹeɪpr/,类似于🇳🇿 crêpe。
请参阅博客文章Love Your Representation ,了解此包的动机。
功能
- 自动为Python文件中的所有类生成
__repr__
方法 - 使用
__init__
方法的参数创建有意义的表示 - 可以添加或删除
__repr__
方法 - 提供选项以显示差异或直接将更改应用于文件
安装
pip install crepr
用法
要将__repr__
方法添加到文件中的所有类中
crepr add <file_name> [--kwarg-splat "..."] [--diff/--inline]
要从文件中的所有类中删除__repr__
方法
crepr remove <file_name> [--diff/--inline]
选项
<file_name>
:要处理的Python文件名称。--kwarg-splat
:用于**kwargs splat的字符串(默认为"...")。--diff
:显示更改的差异。--inline
:直接将更改应用于文件。
示例
给定文件 tests/classes/kw_only_test.py
的内容
class KwOnly:
def __init__(self, name: str, *, age: int) -> None:
self.name = name
self.age = age
命令
❯ crepr add tests/classes/kw_only_test.py
产生
class KwOnly:
def __init__(self, name: str, *, age: int) -> None:
self.name = name
self.age = age
def __repr__(self) -> str:
"""Create a string (c)representation for KwOnly."""
return (f'{self.__class__.__module__}.{self.__class__.__name__}('
f'name={self.name!r}, '
f'age={self.age!r}, '
')')
该类的实例的 repr()
将是
>>> from tests.classes.kw_only_test import KwOnly
>>> kwo = KwOnly('Christian', age=25)
>>> kwo
tests.classes.kw_only_test.KwOnly(name='Christian', age=25, )
使用以下命令将更改应用于文件
❯ crepr add tests/classes/kw_only_test.py --inline
给你的表示一些爱。
❤️.__repr__(self) -> str:
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
crepr-0.4.0.tar.gz (8.1 kB 查看哈希值)
构建分布
crepr-0.4.0-py3-none-any.whl (7.4 kB 查看哈希值)