conf.py
x=10
a.py
import conf
print 'Inside A: %d ' % (conf.x)
conf.x=20 #Here overwriting conf.x
print 'Inside A after changing value to 20 : %d ' % (conf.x)
b.py
import a
import conf
print 'Inside B: %d' % (conf.x)
Output:
python a.py
Inside A: 10
Inside A after changing value to 20 : 20
python b.py
Inside A: 10
Inside A after changing value to 20 : 20
Inside B: 20
#Here you get 20 as output, since you imported a
When you import using 2 ways:
1) from conf import x
#this will create local variable scope
2) import conf
conf.x #refers to original location
a.py
from conf import x #This creates variable in local scope
print 'Inside A: %d ' % (x)
x=20
print 'Inside A after changing value to 20 : %d ' % (x)
Output: python a.py
Inside A: 10
Inside A after changing value to 20 : 20
python b.py
Inside A: 10
Inside A after changing value to 20 : 20
Inside B: 10
Conclusion:
Always safer to use
from conf import x
instead of
import x
x=10
a.py
import conf
print 'Inside A: %d ' % (conf.x)
conf.x=20 #Here overwriting conf.x
print 'Inside A after changing value to 20 : %d ' % (conf.x)
b.py
import a
import conf
print 'Inside B: %d' % (conf.x)
Output:
python a.py
Inside A: 10
Inside A after changing value to 20 : 20
python b.py
Inside A: 10
Inside A after changing value to 20 : 20
Inside B: 20
#Here you get 20 as output, since you imported a
When you import using 2 ways:
1) from conf import x
#this will create local variable scope
2) import conf
conf.x #refers to original location
a.py
from conf import x #This creates variable in local scope
print 'Inside A: %d ' % (x)
x=20
print 'Inside A after changing value to 20 : %d ' % (x)
Output: python a.py
Inside A: 10
Inside A after changing value to 20 : 20
python b.py
Inside A: 10
Inside A after changing value to 20 : 20
Inside B: 10
Conclusion:
Always safer to use
from conf import x
instead of
import x
No comments:
Post a Comment