Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #76791
| 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) |
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
Re: Why can not initialize the class? Larry Martell <larry.martell@gmail.com> - 2014-08-22 10:36 -0400
csiph-web