Using an object inside a class
Terry Reedy
tjreedy at udel.edu
Mon Jan 23 15:25:03 EST 2012
On 1/23/2012 2:44 PM, Jonno wrote:
> I have a pretty complicated bit of code that I'm trying to convert to
> more clean OOP.
>
> Without getting too heavy into the details I have an object which I am
> trying to make available inside another class. The reference to the
> object is rather long and convoluted but what I find is that within my
> class definition this works:
>
> class Class1:
> def __init__(self):
>
> def method1(self):
> foo.bar.object
>
> But this tells me "global name foo is not defined":
>
> class Class1:
> def __init__(self):
> foo.bar.object
>
> Obviously I want the object to be available throughout the class (I left
> out the self.object = etc for simplicity).
Perhaps you left out some relevant details.
> Any ideas why I can reference foo inside the method but not in __init__?
References inside functions are resolved when the function is called. So
purely from what you have presented above, it would seem that 'foo' is
defined between the call to __init__ and a later call to method1.
--
Terry Jan Reedy
More information about the Python-list
mailing list