[Tutor] Classes that do operator overloading

C.T. Matsumoto tmatsumoto at gmx.net
Sat Nov 7 12:25:12 CET 2009


Thanks Hugo,

Do methods like __add__, __del__, count as built-in types? I'm aware of the
rule you explained and use it and that's why when  I saw:

class indexer():
     def ___getitem__(self, index):
         return index ** 2

I thought I was missing some special style, or rule. The class above is take
from Learning Python, and there are several other examples too.

Thanks,

T
Hugo Arts wrote:
> On Sat, Nov 7, 2009 at 10:39 AM, C.T. Matsumoto <tmatsumoto at gmx.net> wrote:
>   
>> yes,
>>
>> class Foo: # the book says this is a class header
>>   pass
>>
>> As for my question it looks like the convention is if a class only has
>> operator overloading then the class receives a lowercase class name.
>> If the class has a mix, operator overloading and a normal method then
>> the class name gets starts with a capital.
>>
>> It's just a detail, but I wanted to know.
>>
>>     
>
> class names should always be capitalized, no matter what kind of
> methods they have.
> The exceptions to this are the built-in types (int, str, list, dict,
> etc.). But if you're writing a class yourself,
> capitalize it.
>
> quoting PEP 8:
>
>       Almost without exception, class names use the CapWords convention.
>       Classes for internal use have a leading underscore in addition.
>
> if you want to know something, anything at all about style
> conventions, read PEP 8. It's the definitive python styleguide.
>
> http://www.python.org/dev/peps/pep-0008/
>
> Hugo
>
>   



More information about the Tutor mailing list