Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #35219
| From | jt@toerring.de (Jens Thoms Toerring) |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Strange effect with import |
| Date | 2012-12-20 20:39 +0000 |
| Organization | Freie Universitaet Berlin |
| Message-ID | <ajhbbnFe4q1U1@mid.uni-berlin.de> (permalink) |
Hi,
I hope that this isn't a stupid question, asked already a
hundred times, but I haven't found anything definitive on
the problem I got bitten by. I have two Python files like
this:
-------- S1.py ------
import random
import S2
class R( object ) :
r = random.random( )
if __name__ == "__main__" :
print R.r
S2.p( )
-------- S2.py ------
import S1
def p( ) :
print S1.R.r
and my expectation was that the static variable 'r' of class
R would be identical when accessed from S1.py and S2.py.
Unfortunately, that isn't the case, the output is different
(and R seems to get instantiated twice).
But when I define R in S2.py instead
-------- S1.py ------
import S2
print S2.R.r
S2.p( )
-------- S2.py ------
import random
class R( object ) :
r = random.random( )
def p( ) :
print R.r
or, alternatively, if I put the defintion of class R into
a third file which I then import from the other 2 files,
things suddenly start to work as expected/ Can someone
explain what's going one here? I found this a bit sur-
prising.
This is, of course, not my "real" code - it would be much
more sensible to pass the number to the function in the
second file as an argument - but is the smallest possinle
program I could come up with that demonstrate the prob-
lem. In my "real" code it's unfortunately not possible
to pass that number to whatever is going to use it in the
other file, I have to simulate a kind of global variable
shared between different files.
Best regards, Jens
--
\ Jens Thoms Toerring ___ jt@toerring.de
\__________________________ http://toerring.de
Back to comp.lang.python | Previous | Next — Next in thread | Find similar | Unroll thread
Strange effect with import jt@toerring.de (Jens Thoms Toerring) - 2012-12-20 20:39 +0000
Re: Strange effect with import Dave Angel <d@davea.name> - 2012-12-20 15:59 -0500
Re: Strange effect with import Peter Otten <__peter__@web.de> - 2012-12-20 22:11 +0100
Re: Strange effect with import Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-12-20 22:13 +0000
Re: Strange effect with import jt@toerring.de (Jens Thoms Toerring) - 2012-12-20 22:52 +0000
Re: Strange effect with import Terry Reedy <tjreedy@udel.edu> - 2012-12-20 19:54 -0500
Re: Strange effect with import jt@toerring.de (Jens Thoms Toerring) - 2012-12-21 01:12 +0000
Re: Strange effect with import Hans Mulder <hansmu@xs4all.nl> - 2012-12-21 01:54 +0100
Re: Strange effect with import jt@toerring.de (Jens Thoms Toerring) - 2012-12-21 01:25 +0000
Re: Strange effect with import jt@toerring.de (Jens Thoms Toerring) - 2012-12-21 15:52 +0000
csiph-web