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

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to