Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #64622

Re: SIngleton from __defaults__

From Dave Angel <davea@davea.name>
Subject Re: SIngleton from __defaults__
Date 2014-01-23 11:56 -0500
Organization news.gmane.org
References <26ff768d-349c-48cd-a46f-25343807e18a@googlegroups.com> <mailman.5843.1390407541.18130.python-list@python.org> <d4053869-c668-4b5d-8e58-25b3650307df@googlegroups.com> <lbp5hf$vjs$1@ger.gmane.org> <52E11AD1.4080305@galileo-press.de>
Newsgroups comp.lang.python
Message-ID <mailman.5899.1390496064.18130.python-list@python.org> (permalink)

Show all headers | View raw


 Johannes Schneider <johannes.schneider@galileo-press.de> Wrote in
 message:
> On 22.01.2014 20:18, Ned Batchelder wrote:
>> On 1/22/14 11:37 AM, Asaf Las wrote:
>> Chris is right here, too: modules are themselves singletons, no matter
>> how many times you import them, they are only executed once, and the
>> same module object is provided for each import.
> 
> I'm not sure, if this is the whole truth.
> 
> think about this example:
> 
> cat bla.py
> a = 10
> 
> cat foo.py
> from bla import a
> 
> def stuff():
>          return a
> 
> cat bar.py
> from foo import stuff
> print stuff()
> a = 5
> print stuff()
> 
> from bla import *
> print a
> 
> python bar.py
> 10
> 10
> 10
> 
> here the a is coming from bla and is known in the global namespace. But 
> the value differs in stuff() and before/after the import statement. So 
> the instance of the module differs -> it cannot be a singelton.
> 

You're using 3 different variables here, each global to its own
 module. If you really want to access the same object, you need to
 reference it as bla.a. And ditch the from deal.

A  from x import y. statement produces a new binding to the same
 object.  But since the object in your example is immutable,  the
 only way it can seem to change is by rebinding.  If several names
 are bound to the same object,  rebinding one has no effect on the
 others. 

-- 
DaveA

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

SIngleton from __defaults__ Asaf Las <roegltd@gmail.com> - 2014-01-22 08:07 -0800
  Re: SIngleton from __defaults__ Chris Angelico <rosuav@gmail.com> - 2014-01-23 03:18 +1100
    Re: SIngleton from __defaults__ Asaf Las <roegltd@gmail.com> - 2014-01-22 08:37 -0800
      Re: SIngleton from __defaults__ 88888 Dihedral <dihedral88888@gmail.com> - 2014-01-22 09:23 -0800
      Re: SIngleton from __defaults__ Ned Batchelder <ned@nedbatchelder.com> - 2014-01-22 14:18 -0500
        Re: SIngleton from __defaults__ Asaf Las <roegltd@gmail.com> - 2014-01-22 11:52 -0800
      Re: SIngleton from __defaults__ Johannes Schneider <johannes.schneider@galileo-press.de> - 2014-01-23 14:36 +0100
      Re: SIngleton from __defaults__ Dave Angel <davea@davea.name> - 2014-01-23 11:56 -0500
      Re: SIngleton from __defaults__ Terry Reedy <tjreedy@udel.edu> - 2014-01-23 19:10 -0500
      Re: SIngleton from __defaults__ Johannes Schneider <johannes.schneider@galileo-press.de> - 2014-01-24 09:20 +0100
    Re: SIngleton from __defaults__ Asaf Las <roegltd@gmail.com> - 2014-01-22 13:10 -0800
    Re: SIngleton from __defaults__ Asaf Las <roegltd@gmail.com> - 2014-01-22 14:34 -0800

csiph-web