Big file
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Wed Mar 12 21:34:17 EDT 2008
On Wed, 12 Mar 2008 19:42:44 -0500, Andrew Rekdal 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?
Here's the way you do what you literally asked for:
class MyClass(object):
def __init__(self, *args):
# Warning: completely untested
execfile('myfile.py') # may need extra arguments?
but you almost certainly don't want to do that. A better way is by
importing modules, the same as you would for anything else:
class MyClass(object):
def __init__(self, *args):
from AnotherModule import constructor
constructor(self, *args)
But frankly if you find yourself needing to do this because your file is
"too big" and is unmanageable, I think you are in desperate need of
refactoring your code to make if more manageable. Pushing vast amounts of
random code out into other files just increases the complexity: not only
do you have vast amounts of code, but you have large numbers of files to
manage as well.
--
Steven
More information about the Python-list
mailing list