GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

python-attrs

attrs – ボイラープレートのないPythonクラス

投稿日:

ボイラープレートのないPythonクラス http://www.attrs.org/

attrs :ボイラープレートのないクラス

attrsはPythonパッケージです。これは、オブジェクトプロトコル( dunderメソッドとも呼ばれます)を実装することの煩わしさからあなたを解放することによって、 クラス書く 喜びをもたらします。

その主な目的は、コードの速度を落とすことなく簡潔正しいソフトウェアを書くのを手助けすることです。

そのために、クラスデコレータとそのクラスの属性を宣言的に定義する方法を提供します:

>>> import attr

>>> @attr.s
... class SomeClass(object):
...     a_number = attr.ib(default=42)
...     list_of_numbers = attr.ib(default=attr.Factory(list))
...
...     def hard_math(self, another_number):
...         return self.a_number + sum(self.list_of_numbers) * another_number


>>> sc = SomeClass(1, [1, 2, 3])
>>> sc
SomeClass(a_number=1, list_of_numbers=[1, 2, 3])

>>> sc.hard_math(3)
19
>>> sc == SomeClass(1, [1, 2, 3])
True
>>> sc != SomeClass(2, [3, 2, 1])
True

>>> attr.asdict(sc)
{'a_number': 1, 'list_of_numbers': [1, 2, 3]}

>>> SomeClass()
SomeClass(a_number=42, list_of_numbers=[])

>>> C = attr.make_class("C", ["a", "b"])
>>> C("foo", "bar")
C(a='foo', b='bar')

あなたの属性を宣言した後、 attrsはあなたに次のことを与えます:

  • クラスの属性の簡潔で明解な概要、
  • 人間が読める__repr__
  • 比較方法の完全なセット、
  • イニシャライザ、
  • また、

無駄な定型コードを何度も何度書かずに、実行時のパフォーマンスを損なうこともありません

これにより、 tupleを混乱させたり、 namedtuple tupleを混乱させる代わりに、コード内に実際の型を持つ実際のクラスを使用する権限が与えられます。 これは、あなたが1つのことをうまくやっている小さなクラスを書くことを奨励します。 __init__ et alの実装が苦痛であるという理由だけで、再び単一の責任原則に違反しないでください。

お客様の声

アンバー・ホーキー・ブラウン 、ツイスト・リリース・マネージャー、コンピューター・フクロウ:

attrsを使って完全に機能するクラスを書くことは、この証言を書くよりも時間がかかります。

TwistedAutomat 、およびその他のオープンソースソフトウェアの作成者であるGlyph LefkowitzはThe One Python Libraryに参加しています。

どこでもPython-with-attrsでプログラムできるようになることを楽しみにしています。 これは私が使用しているすべてのコードベースで、微妙ではあるが肯定的なデザインの影響を及ぼします。

Kenneth Reitz要求の著者、Python Overlord at Heroku、 以下の文書では

人間のためのattrs-classes。 私はそれが好きです。

FacebookのプロダクションエンジニアであるCPythonのコア開発者であるŁukaszLanga氏:

私はますますあなたのattr.ocityを掘り起こしています。 よくやった!

ヘルプの利用

StackOverflowの python-attrsタグを使用してヘルプを入手してください。

あなたの仲間の開発者の質問に答えることも、プロジェクトを助ける素晴らしい方法です!

プロジェクト情報

attrsMITライセンスでリリースされ、そのドキュメントはRead the DocsGitHubのコード、そしてPyPIの最新リリースで公開されています。 Python 2.7、3.4+、およびPyPyで厳密にテストされています。

私たちは、 ウィキで 第三者の拡張に関する情報を収集します 気軽に閲覧して追加してください!

あなたがattrsに貢献したいのであれば、あなたを大歓迎しています。







-python-attrs
-, , , , ,

執筆者: