hi.
if i have a single program file, different class instances can share information in (at least) two fashions:
1. using instance variables:
class AClass: def __init__(self): self.att_1 = 42 self.att_2 = "Hello!"
class AnotherClass: def __init__(self): self.att_1 = anInstanceOfAClass.att_1
anInstanceOfAClass = AClass() anInstanceOfAnotherClass = AnotherClass() print anInstanceOfAnotherClass.att_1 ### This should print out 42
2. using globals:
class AClass: def __init__(self): self.att_1 = 42 self.att_2 = "Hello!"
class AnotherClass: pass
aGlobalString = "No way." anInstanceOfAClass = AClass() anInstanceOfAClass.att2 = aGlobalString anInstanceOfAnotherClass = AnotherClass() anInstanceOfAnotherClass.att_1 = aGlobalString print anInstanceOfAClass.att2 ### This should output "No way." print anInstanceOfAnotherClass.att_1 ### And this too
----
i admit i prefer the fisrt way to do it. i have tried to make it work even if the "main program" and each class definition reside in different files, but i could not make it work:
[EMAIL PROTECTED]:/tmp$ cat AClass.py class AClass: def __init__(self): self.att_1 = 42 self.att_2 = "Hello!" [EMAIL PROTECTED]:/tmp$ cat AnotherClass.py class AnotherClass: def __init__(self): self.att_1 = anInstanceOfAClass.att_1 [EMAIL PROTECTED]:/tmp$ cat Main.py from AClass import * from AnotherClass import * anInstanceOfAClass = AClass() anInstanceOfAnotherClass = AnotherClass() print anInstanceOfAnotherClass.att_1 ### This should print out 42 [EMAIL PROTECTED]:/tmp$ python Main.py Traceback (most recent call last): File "Main.py", line 4, in ? anInstanceOfAnotherClass = AnotherClass() File "/tmp/AnotherClass.py", line 3, in __init__ self.att_1 = anInstanceOfAClass.att_1 NameError: global name 'anInstanceOfAClass' is not defined [EMAIL PROTECTED]:/tmp$
----
any suggestion?
bye max -- http://mail.python.org/mailman/listinfo/python-list