Big file

Simon Forman sajmikins at gmail.com
Wed Mar 12 20:59:33 EDT 2008


On Mar 12, 5:42 pm, "Andrew Rekdal" <as... at comcast.net> wrote:
> I am working in the class constructor defining elements of an application. The problem is the file is getting unmanageble and I am wanting to extend the contructor __init__ to another file.
>
> Is it possible to import directly into the contructor the contents of another module file?
>
> If so how would this be done?
>
> Thanks -- andrew

First, you should consider breaking your __init__() method into
smaller pieces (methods) and calling those from within __init__().

That said, you can add attributes to an instance by means of its
__dict__ dict attribute:

|>> class foo:
|>>     def __init__(self):
|>>         self.__dict__['hi'] = ['An object']
|>>         print self.__dict__
|>>

|>> f = foo()
{'hi': ['An object']}

|>> f.hi
['An object']


You might try:

|>> exec 'from sys import *' in f.__dict__

Now everything in sys appears in f:

|>> f.copyright
'Copyright (c) 2001-2006 Python Software Foundation.\nAll Rights
Reserved.\n\nCopyright (c) 2000 BeOpen.com.\nAll Rights Reserved.\n
\nCopyright (c) 1995-2001 Corporation for National Research
Initiatives.\nAll Rights Reserved.\n\nCopyright (c) 1991-1995
Stichting Mathematisch Centrum, Amsterdam.\nAll Rights Reserved.'

HTH,
~Simon



More information about the Python-list mailing list