[Python-Dev] PEP 8 updates/clarifications
Ian Bicking
ianb at colorstudy.com
Mon Dec 12 21:25:54 CET 2005
Barry Warsaw wrote:
> On Fri, 2005-12-09 at 17:19 -0600, Ian Bicking wrote:
>
>
>>I personally feel "cls" should be used for classmethods, and not
>>elsewhere. Just like I wouldn't like someone using "self" outside of
>>the first argument of instance methods. So class_ still would be a good
>>spelling elsewhere.
>
>
> Here's what I've written:
>
> Function and method arguments
>
> Always use 'self' for the first argument to instance methods.
>
> Always use 'cls' for the first argument to class methods.
>
> If a function argument's name clashes with a reserved keyword, it is
> generally better to append a single trailing underscore rather than use
> an abbreviation or spelling corruption. Thus "print_" is better than
> "prnt".
That looks good to me. Well, I actually try not to use cls as the first
argument to metaclass's __new__ method, because there's so many classes
being tossed about at that point that I try to be more explicit. But I
don't consider that a common enough issue to be worth mentioning in PEP 8.
>>I looked at that too, but most of these didn't jump out at me. I'll
>>copy in the parts that aren't already in PEP 8 that seem possible:
>>
>> From-imports should follow non-from imports. Dotted imports should
>>follow
>> non-dotted imports. Non-dotted imports should be grouped by increasing
>> length, while dotted imports should be grouped roughly alphabetically.
>>
>>This seems too complex to me for PEP 8.
>
>
> Really? ISTR adopting this convention from Guido, but I'm not 100% sure
> about that. After having used it for several years now, I do really
> like this style, but I'm willing to leave the recommendation out of PEP
> 8.
It seems so exacting to me; stdlib, external modules, internal modules
seems like enough ordering to me. If you want to order things more
exactly, sure, but I don't really see the point personally. Since I
can't assume as a reader that imports are ordered in any way I have to
search to be sure of what's there. The grouping help me browse, but I'd
hope that the import list is short enough that I don't need to use
alphabetization to scan for a module.
--
Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
More information about the Python-Dev
mailing list