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


Groups > comp.lang.python > #96038

Re: Python handles globals badly.

References <c3363$547e74fe$5419aafe$24179@news.ziggo.nl> <58e0d1b5-a7ca-4811-9926-fba1b7ede83f@googlegroups.com> <CAPTjJmpkry3qBL9ntf4gUsE-aDGLooHqViMBW=ZNcK2Lb9e9nA@mail.gmail.com> <55EA487D.2010807@gmail.com>
Date 2015-09-05 11:54 +1000
Subject Re: Python handles globals badly.
From Chris Angelico <rosuav@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.155.1441418073.8327.python-list@python.org> (permalink)

Show all headers | View raw


On Sat, Sep 5, 2015 at 11:42 AM, Michael Torrie <torriem@gmail.com> wrote:
> On 09/04/2015 06:27 PM, Chris Angelico wrote:
>> If you want the first one, well, there are languages like that, and
>> you're welcome to use those. For the latter, it's easy enough to do
>> something like this:
>>
>> import types
>> _g = types.SimpleNamespace()
>>
>> def accumulate(x):
>>     _g.accum += x
>>     return _g.accum
>>
>> Look, Ma! No global statement!
>
> Since most of the time for me when I need a global, I need it to be an
> app global (more than just one module) and I use it to store
> configuration.  So I just use another module for that.
>
> import my_global_module as _g
>
> _g.some_setting = 5

Yeah. Comes to the same thing; if you use a dotted lookup, it's not
assigning to the global.

Of course, you still have all the other concerns about globals. You've
just buried them behind a level of indirection.

> I get the impression, thought, that our esteemed poster is still trying
> to battle the Java windmill, but in Python now and will never accept
> anything we try to tell him about the Python way.  Python does have its
> warts, but often attempts to fix the warts would just make things a lot
> worse.  So I accept them as part of Python's character and try to use
> them to my advantage.

Indeed. The key to being a good programmer is not "write your code
despite the language you're using", but "write the code in the
language you're using".

ChrisA

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


Thread

Re: Python handles globals badly. tdev@freenet.de - 2015-09-04 12:11 -0700
  Re: Python handles globals badly. Ian Kelly <ian.g.kelly@gmail.com> - 2015-09-04 13:48 -0600
  Re: Python handles globals badly. Ian Kelly <ian.g.kelly@gmail.com> - 2015-09-04 13:52 -0600
  Re: Python handles globals badly. Chris Angelico <rosuav@gmail.com> - 2015-09-05 10:27 +1000
  Re: Python handles globals badly. Michael Torrie <torriem@gmail.com> - 2015-09-04 19:42 -0600
  Re: Python handles globals badly. Chris Angelico <rosuav@gmail.com> - 2015-09-05 11:54 +1000
    Program in or into (was Python handles globals badly) Rustom Mody <rustompmody@gmail.com> - 2015-09-04 20:18 -0700
      Re: Program in or into (was Python handles globals badly) Chris Angelico <rosuav@gmail.com> - 2015-09-05 13:31 +1000
      Re: Program in or into (was Python handles globals badly) Steven D'Aprano <steve@pearwood.info> - 2015-09-06 12:35 +1000
        Re: Program in or into (was Python handles globals badly) MRAB <python@mrabarnett.plus.com> - 2015-09-06 03:54 +0100
        Re: Program in or into (was Python handles globals badly) Rustom Mody <rustompmody@gmail.com> - 2015-09-05 21:35 -0700
        Re: Program in or into (was Python handles globals badly) random832@fastmail.us - 2015-09-06 01:26 -0400
          Re: Program in or into (was Python handles globals badly) wxjmfauth@gmail.com - 2015-09-06 00:42 -0700
        Re: Program in or into (was Python handles globals badly) Ian Kelly <ian.g.kelly@gmail.com> - 2015-09-06 18:19 -0600

csiph-web