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


Groups > comp.lang.python > #82229

Re: When do default parameters get their values set?

Path csiph.com!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!newspeer1.nac.net!news.astraweb.com!border5.newsrouter.astraweb.com!not-for-mail
From "Chris Angelico" <chris.angelico@1:249/999.remove-cdt-this>
To bSneddon
Subject Re: When do default parameters get their values set?
Message-ID <54866F2E.1767.complang@piz.noip.com> (permalink)
X-Comment-To bSneddon
Newsgroups comp.lang.python
In-Reply-To <54866F2E.1765.complang@piz.noip.com>
References <54866F2E.1765.complang@piz.noip.com>
X-FTN-AREA COMP.LANG.PYTHON
X-FTN-PID SoupGate-Win32 v1.05
X-FTN-MSGID <mailman.16738.1418077685.18130.python-list@python.org> 62e3d454
X-FTN-REPLY <8c10ecec-c057-4580-9711-94c0a5151646@googlegroups.com> bdfc525e
Content-Type text/plain; charset=IBM437
Content-Transfer-Encoding 8bit
X-Gateway piz.noip.com [Synchronet 3.15b-Win32 NewsLink 1.92]
X-Server piz.noip.me
Date 9 Dec 2014 11:32:01 -0500
Lines 36
Organization Unlimited download news at news.astraweb.com
NNTP-Posting-Host 2266ad8f.news.astraweb.com
X-Trace DXC=LP`[=a9Aa>e1m]JSMD?cjjL?0kYOcDh@jRScV177L_PaZh[e@ZS;QScl23]GVn`ZmfMHo6fPSBkUk04hIVDTD?[k7g\XjYcGehifPiGS6_2a\m
Xref csiph.com comp.lang.python:82229

Show key headers only | View raw


  To: bSneddon
Copy: python-list@python.org (python-list@python.org)

On Tue, Dec 9, 2014 at 9:10 AM, bSneddon <w.g.sneddon@gmail.com> wrote:
> I ran into an issue setting variables from a GUI module that imports a back 
end module.  My approach was wrong obviously but what is the best way to set 
values in a back end module.
>
> #module name beTest.py
>
> cfg = { 'def' : 'blue'}
>
> def printDef(argT = cfg['def']):
>         print argT

They're set when you define the function, and become attributes of the 
function.

If you want to lazily fetch the defaults, here's one common idiom:

def printDef(argT=None):
    """Print the argT value, defaults to cfg['def']"""
    if argT is None: argT = cfg['def']
    print(argT)

This depends on None not being a meaningful argument value, of course.
If you need to have any object at all able to be passed in, you'd need
to create a dedicated sentinel object, or use *args and unpack
yourself; but for a lot of cases, None works fine.

ChrisA

--- SoupGate-Win32 v1.05
 * Origin: <SpaceSST.BBS.Fidonet<>NNTP.gateway.@.piz.noip.me> (1:249/999)
--- Synchronet 3.15b-Win32 NewsLink 1.92
SpaceSST BBS Usenet <> Fidonet Gateway

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


Thread

When do default parameters get their values set? "bSneddon" <bsneddon@1:249/999.remove-cdt-this> - 2014-12-09 11:32 -0500
  Re: When do default parameters get their values set? "Chris Angelico" <chris.angelico@1:249/999.remove-cdt-this> - 2014-12-09 11:32 -0500
  Re: When do default parameters get their values set? "Dave Angel" <dave.angel@1:249/999.remove-cdt-this> - 2014-12-09 11:32 -0500
    Re: When do default parameters get their values set? Duncan Booth <duncan.booth@invalid.invalid> - 2014-12-09 21:18 +0000
      Re: When do default parameters get their values set? random832@fastmail.us - 2014-12-09 18:07 -0500
        Re: When do default parameters get their values set? Rustom Mody <rustompmody@gmail.com> - 2014-12-09 18:44 -0800
          Re: When do default parameters get their values set? random832@fastmail.us - 2014-12-10 13:38 -0500
            Re: When do default parameters get their values set? Rustom Mody <rustompmody@gmail.com> - 2014-12-10 18:18 -0800
              Re: When do default parameters get their values set? Chris Angelico <rosuav@gmail.com> - 2014-12-11 13:24 +1100
                Re: When do default parameters get their values set? Rustom Mody <rustompmody@gmail.com> - 2014-12-10 18:50 -0800
              Re: When do default parameters get their values set? Steven D'Aprano <steve@pearwood.info> - 2014-12-11 03:15 +0000
                Re: When do default parameters get their values set? Rustom Mody <rustompmody@gmail.com> - 2014-12-10 19:26 -0800
                Re: When do default parameters get their values set? Ben Finney <ben+python@benfinney.id.au> - 2014-12-11 14:49 +1100
                Re: When do default parameters get their values set? Chris Kaynor <ckaynor@zindagigames.com> - 2014-12-11 09:10 -0800
                Re: When do default parameters get their values set? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-12-12 09:51 +1100
              Re: When do default parameters get their values set? random832@fastmail.us - 2014-12-11 15:44 -0500
  Re: When do default parameters get their values set? "Tim Chase" <tim.chase@1:249/999.remove-cdt-this> - 2014-12-09 11:32 -0500

csiph-web