[pylint] why pylint wants only capitals identifiers?

Jean-Michel Pichavant jeanmichel at sequans.com
Mon Apr 19 18:30:39 CEST 2010


Giacomo Boffi wrote:
> Jean-Michel Pichavant <jeanmichel at sequans.com> writes:
>
>   
>> Giacomo Boffi wrote:
>>     
>>> i have this code
>>>
>>> def example(a):
>>>     return lambda b: a+b+1
>>>
>>> fun = example(10)
>>> k_1 = fun(7)
>>> ...
>>>
>>> and pylint tells me
>>>
>>> [...]
>>> C:  4: Invalid name "fun" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
>>> C:  5: Invalid name "k_1" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
>>> [...]
>>>                                                                 g
>>>
>>>       
>> Pylint default rules need some tuning
>>     
>
> ok, but maybe it's not my specific problem (see below)
>
>   
>> However, given you example, you should not insert code execution at
>> you module level, unless it's required only at the module import. I
>> dont know what is your module
>>     
>
> module? this was not well specified in my OP, but i'd rather speak of
> a "script" instead of a module...
>   

If by "script" you mean quick-and-dirty, then why bother running pylint 
on it ? Sounds out of topic to me.

But if you still care about how correctly structured you script should 
be, then it should be written almost like a module.

- do not write executable code at the module level
- if a function needs an information, it should ask for it as a 
parameter, not using a de-scoped variable (aka global variables)
- if a function ask for too many parameters, then it may ask for few 
objects instead (e.g. plot(x,y,z) => plot(point), poor example though, 3 
paramaters are acceptable)
- it's better if your script can be imported in a separate file and 
tested there

the list could contain many more items, and the more item you implement 
the closer to a module you get.

JM





More information about the Python-list mailing list