David Perlman wrote:
If I make a subclass of a built-in class, like this:

class mylist(list):
    def __init__(self):
        list.__init__(self)

Then it is valid for me to do this:

>>> x=mylist()
>>> x.hello=3
>>>

But I can't do this:

>>> y=list()
>>> y.hello=3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'hello'
>>>

What is it that is special about built-in classes that prevents you from adding methods or, uh, whatever the generic term is for sub-variables? Is there a way to make your own classes restricted like that?
Classes, instances, functions may have user-defined attributes. Built-in data types such as list may not. Hence the need to subclass (e.g. list) to add additional attributes.

--
Bob Gailer
Chapel Hill NC
919-636-4239
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to