[FRPythoneers] Base Object in Python
jafo at tummy.com
Wed Jan 23 16:06:06 MST 2002
On Wed, Jan 23, 2002 at 02:17:51PM -0800, Keith Hellman wrote:
>How do I create the most generic of generic objects in python? I realize
>it can be as simple as
Python 2.2 has an "object" type. This is probably a pretty good base
object if you want no fluff... It's used in Python 2.2 as the base for
creating "new-style classes". To make a new-style class, you simply
inherit from an existing new-style class. In 2.2, "object" is the base you
use when creating a new new-style class.
>>> print object
>>> s = object()
>>> print dir(s)
['__class__', '__delattr__', '__getattribute__', '__hash__', '__init__',
'__new__', '__reduce__', '__repr__', '__setattr__', '__str__']
>>> print s
<object object at 0x812f948>
The problem is that it restricts setting attributes on it:
>>> s.x = 1
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AttributeError: 'object' object has no attribute 'x'
So, you may still have to do:
>>> class nclass(object): pass
>>> sn = nclass()
>>> sn.x = 1
Though, if you just want to define attributes on an object, why don't you
just use a dictionary?
If you want to know more about new-style classes, well, I guess you should
have been at Monday's FRPythoneer's meeting, eh? ;-) Check out the 2.2
page from www.python.org -- both AMK's report on changes and a
tutorial discuss these changes.
Give me a Kaypro 64 and dial-tone and I can do *ANYTHING*!
-- Steven, _The_Score_
Sean Reifschneider, Inimitably Superfluous <jafo at tummy.com>
tummy.com - Linux Consulting since 1995. Qmail, KRUD, Firewalls, Python
More information about the FRPythoneers