On 10/18/2010 06:45 AM, f...@slick.airforce-one.org wrote:
Neil Cerutti<ne...@norwich.edu> wrote:
I have a class A that contains two classes B and C:
class A:
class B:
self.x = 2
class C:
I only wanted to show the structure of the code, not the actual
instructions.
That's not valid Python code. Do you mean:
Class A:
Class B:
x = 2
Class A:
Class B:
def __init__(self):
self.x = 2
Any of these, aslong as I can access x in C.
By the way, is the first proposition (that is, x = 2, without the
self.) valid? Is x a global variable then?
Thanks.
Well, your code still doesn't make sense, but the generic answers are:
This defines a class variable:
class A:
x=123
and access to the variable is
A.x
This defines an instance variable:
class A:
def __init__(self):
self.x = 123
and once you have an object of class A,
a = A()
access is
a.x
from outside the class, and
self.x
from inside the class.
(Those are really the same, the instance is named 'a' in one case and
'self' in the other.)
If *any* object, class or instance of a class (or module or whatever)
contains another, access is by chaining the dots.
OuterOb.InnerOb.attribute
Hope that answers your question.
Gary Herron
--
http://mail.python.org/mailman/listinfo/python-list