Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #64527
| From | Ned Batchelder <ned@nedbatchelder.com> |
|---|---|
| Subject | Re: SIngleton from __defaults__ |
| Date | 2014-01-22 14:18 -0500 |
| References | <26ff768d-349c-48cd-a46f-25343807e18a@googlegroups.com> <mailman.5843.1390407541.18130.python-list@python.org> <d4053869-c668-4b5d-8e58-25b3650307df@googlegroups.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.5848.1390418313.18130.python-list@python.org> (permalink) |
On 1/22/14 11:37 AM, Asaf Las wrote: > On Wednesday, January 22, 2014 6:18:57 PM UTC+2, Chris Angelico wrote: >> On Thu, Jan 23, 2014 at 3:07 AM, Asaf Las <r....@gmail.com> wrote: >> >> Why not simply: >> def get_singleton(x = SomeClass()): >> return x >> Or even: >> singleton = SomeClass() >> ? Neither of the above provides anything above the last one, except >> for late creation. >> >> ChrisA > > Actually need was to have some interface to running independent threads > to give same and once created object always. > > For first - SomeClass's object will be created whenever there will be > call to get_singleton(). No, the value for a function argument's default is computed once when the function is defined. Chris is right: get_singleton will always return the same object. > For second, again it is free to create it whenever someone (thread) > wish. 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. > > Hmmm, use case was to create persistent counter in multithreaded app > accessing single file where incrementing integer is stored. > When my imagination expanded it onto multiprocessing mess i ended up > using sqlite access to DB in exclusive transaction mode. > But this was not pythonic :-) > > Asaf > -- Ned Batchelder, http://nedbatchelder.com
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll 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