Is this pylint error message valid or silly?

Matthew Wilson matt at tplus1.com
Thu Jun 18 20:56:18 EDT 2009


Here's the code that I'm feeding to pylint:

    $ cat f.py
    from datetime import datetime

    def f(c="today"):

        if c == "today":
                    c = datetime.today()

        return c.date()


And here's what pylint says:

    $ pylint -e f.py
    No config file found, using default configuration
    ************* Module f
    E: 10:f: Instance of 'str' has no 'date' member (but some types could
    not be inferred)

Is this a valid error message?  Is the code above bad?  If so, what is
the right way?

I changed from using a string as the default to None, and then pylint
didn't mind:


    $ cat f.py 
    from datetime import datetime

    def f(c=None):

        if c is None:
                    c = datetime.today()

        return c.date()

    $ pylint -e f.py 
    No config file found, using default configuration

I don't see any difference between using a string vs None.  Both are
immutable.  I find the string much more informative, since I can write
out what I want.

Looking for comments.

Matt



More information about the Python-list mailing list