What's the best way to minimize the need of run time checks?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Thu Aug 18 03:24:07 EDT 2016


On Thursday 18 August 2016 03:29, Michael Selik wrote:
>> You might find this https://glyph.twistedmatrix.com/2016/08/attrs.html an
>> interesting read.
>>>> I disagree with a few points from that blog post.
>> 1. I don't mind typing so much. I like to be explicit. The attrs library
> uses some overly-concise abbreviations. For example, what's the meaning of
> ``@attrs.s`` or ``attrs.ib``?

They're puns. Literally.
`attr.s` for "attrs", and `attr.ib` for "attrib(ute)".
There are longer, non-punny synonyms for these, but I don't remember what they 
are.
> 2. When inheriting from a namedtuple, I use the same class name for the
> base and the child, so my reprs look good.

Still, I think it is unfortunate that namedtuple does the wrong thing. Having 
to use the same name for the parent and child class could, potentially, make 
debugging more annoying.
> 3. I don't bother to fieldnames.split() when passing fieldnames as a
> space-separated string, because the split is unnecessary.

Because namedtuple does the split for you.
> 4. I *like* that namedtuple is backwards-compatible with tuples, so that
> refactoring from tuples to namedtuples is easy.

Correct. An "attrs" object is not a tuple.
> 5. Inheritance is useful. Sure, there are times it fails, but that's true
> for any technique.

-- 
Steve


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /