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


Groups > comp.lang.python > #81827

Re: Python handles globals badly.

Date 2014-12-02 20:13 -0700
From Michael Torrie <torriem@gmail.com>
Subject Re: Python handles globals badly.
References <c3363$547e74fe$5419aafe$24179@news.ziggo.nl>
Newsgroups comp.lang.python
Message-ID <mailman.16509.1417576416.18130.python-list@python.org> (permalink)

Show all headers | View raw


On 12/02/2014 07:27 PM, Skybuck Flying wrote:
> Excuse is: "bad programming style".
> 
> I don't need snot telling me how to program after 20 years of programming 
> experience.
> 
> This is so far the only thing pissing me off in python.
> 
> Now I have to declare "global" in front of these variables every where I 
> want to use em:

Only if you want to overwrite them, though.  Python has support for any
number of programming paradigms.  That many global variables is
screaming for some kind of organization and Python has good mechanisms
for doing this in a much neater way. Might I suggest you use a namespace
instead?  Put all your "globals" in a module, and refer to them via the
module.  For example (converting to pep8 which looks better to me):

import globals as g

def some_func():
   g.ship_ability_distribute_shield_power = 5

A whole lot cleaner than trying to use the global keyword everywhere.

If you've really been programming for 20 years, surely you're familiar
with programming patterns.  The fact that you have 6 variables all
prefixed with "ShipAbility" should suggest something to you. Like maybe
all of these attributes could be encapsulated in one "ship" object.
Python is very flexible in how you use objects.  You can program in
strict java-style if you want, or adopt a more freeform approach:

ship = object()
ship.ability = object()
ship.ability.distribute_shield_power = 5
etc.

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


Thread

Python handles globals badly. "Skybuck Flying" <skybuck2000@hotmail.com> - 2014-12-03 03:27 +0100
  Re: Python handles globals badly. Chris Angelico <rosuav@gmail.com> - 2014-12-03 13:35 +1100
  RE: Python handles globals badly. "Clayton Kirkwood" <crk@godblessthe.us> - 2014-12-02 18:53 -0800
  Re: Python handles globals badly. Michael Torrie <torriem@gmail.com> - 2014-12-02 20:13 -0700
    Re: Python handles globals badly. "Skybuck Flying" <skybuck2000@hotmail.com> - 2014-12-03 05:32 +0100
      Re: Python handles globals badly. Chris Angelico <rosuav@gmail.com> - 2014-12-03 15:42 +1100
      Re: Python handles globals badly. Dave Angel <davea@davea.name> - 2014-12-03 00:02 -0500
      Re: Python handles globals badly. Michael Torrie <torriem@gmail.com> - 2014-12-02 22:23 -0700
        Re: Python handles globals badly. Marko Rauhamaa <marko@pacujo.net> - 2014-12-03 08:52 +0200
          Re: Python handles globals badly. Joel Goldstick <joel.goldstick@gmail.com> - 2014-12-03 02:17 -0500
      Re: Python handles globals badly. Joshua Landau <joshua@landau.ws> - 2014-12-03 13:07 +0000
      Re: Python handles globals badly. mm0fmf <none@mailinator.com> - 2014-12-03 18:04 +0000
        Re: Python handles globals badly. sohcahtoa82@gmail.com - 2014-12-03 10:16 -0800
          Re: Python handles globals badly. Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-12-04 11:57 +1100
            Re: Python handles globals badly. Chris Angelico <rosuav@gmail.com> - 2014-12-04 12:10 +1100
            Re: Python handles globals badly. Joel Goldstick <joel.goldstick@gmail.com> - 2014-12-03 20:23 -0500
          Re: Python handles globals badly. Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2014-12-03 22:57 -0500
          Re: Python handles globals badly. Michael Torrie <torriem@gmail.com> - 2014-12-03 21:11 -0700
  Re: Python handles globals badly. Ben Finney <ben+python@benfinney.id.au> - 2014-12-03 14:21 +1100
  Re: Python handles globals badly. "Skybuck Flying" <skybuck2000@hotmail.com> - 2014-12-03 05:17 +0100
    Re: Python handles globals badly. Chris Angelico <rosuav@gmail.com> - 2014-12-03 15:36 +1100
    Re: Python handles globals badly. Tony the Tiger <tony@tiger.invalid> - 2014-12-04 20:27 +0000
  Re: Python handles globals badly. Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-12-03 12:35 +0000
    Re: Python handles globals badly. "Skybuck Flying" <skybuck2000@hotmail.com> - 2014-12-04 00:02 +0100
      Re: Python handles globals badly. Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-12-04 01:32 +0000
      Re: Python handles globals badly. Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2014-12-03 23:01 -0500
      Re: Python handles globals badly. jtan <admin@grails.asia> - 2014-12-04 13:03 +0800
        Re: Python handles globals badly. Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-12-04 22:35 +1100
          Re: Python handles globals badly. jtan <admin@grails.asia> - 2014-12-04 22:38 +0800
      Re: Python handles globals badly. Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-12-04 10:24 +0000
      Re: Python handles globals badly. Chris Angelico <rosuav@gmail.com> - 2014-12-04 21:29 +1100
        Re: Python handles globals badly. Marko Rauhamaa <marko@pacujo.net> - 2014-12-04 14:51 +0200
          Re: Python handles globals badly. Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2014-12-04 20:56 -0500
          Re: Python handles globals badly. William Ray Wing <wrw@mac.com> - 2014-12-04 23:17 -0500
      Re: Python handles globals badly. alister <alister.nospam.ware@ntlworld.com> - 2014-12-04 19:54 +0000
  Re: Python handles globals badly. Peter Pearson <pkpearson@nowhere.invalid> - 2014-12-03 20:31 +0000

csiph-web