At Thursday 28/12/2006 03:18, Pyenos wrote:

class Class1:
    class Class2:
        class Class3:
            def __init__(self):
                self.var="var"
            class Class4:
                print Class1.Class2.Class3.var

This code gives me the error:
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "<stdin>", line 2, in Class1
  File "<stdin>", line 3, in Class2
  File "<stdin>", line 6, in Class3
  File "<stdin>", line 7, in Class4
NameError: name 'Class1' is not defined

- put your print statement inside a method
- as I've said, try to grab the difference between an instance attribute and a class attribute.

var is an attribute of Class3 instances (because you wrote self.var = something), so you need a Class3 instance to access it. Class3 is a class attribute of Class2. Class2 is an instance attribute of Class1. Putting all this together, you can refer to such "var" as Class1.Class2.Class3().var


--
Gabriel Genellina
Softlab SRL

        

        
                
__________________________________________________ Preguntá. Respondé. Descubrí. Todo lo que querías saber, y lo que ni imaginabas, está en Yahoo! Respuestas (Beta). ¡Probalo ya! http://www.yahoo.com.ar/respuestas
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to