Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #76791

Re: Why can not initialize the class?

References <53F752FA.8080902@gmail.com>
Date 2014-08-22 10:36 -0400
Subject Re: Why can not initialize the class?
From Larry Martell <larry.martell@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.13288.1408718166.18130.python-list@python.org> (permalink)

Show all headers | View raw


On Fri, Aug 22, 2014 at 10:26 AM, luofeiyu <elearn2014@gmail.com> wrote:
> System:win7+python34.
>
>     class Contact(object):
>         def __init__(self, first_name=None, last_name=None,
>                      display_name=None, email=None):
>             self.first_name = first_name
>             self.last_name = last_name
>             self.display_name = display_name
>             self.email = email
>         def print_info(self):
>             print(self.display_name, "<" + self.email + ">"  )
>         def set_email(self, value):
>             if '@' not in value:
>                 raise Exception("This doesn't look like an email address.")
>             self._email = value
>         def get_email(self):
>             return self._email
>         email = property(get_email, set_email)
>
>     contact = Contact()
>
> The error message is :
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "<stdin>", line 7, in __init__
>   File "<stdin>", line 11, in set_email
> TypeError: argument of type 'NoneType' is not iterable
>
> What is wrong with the code?

The 'in' operator requires an iterable. When you do 'self.email =
email' set_email gets called and value is None.

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: Why can not initialize the class? Larry Martell <larry.martell@gmail.com> - 2014-08-22 10:36 -0400

csiph-web