Yeah, okay. Just to be clear, you're no longer asking for advice at this point, you're just giving your opinion of "flaws" that python has, right? You understand the situation, right?
-Christopher On Sat, Mar 10, 2012 at 4:58 PM, Brian Brown <bro...@gmail.com> wrote: > #example 1: > > variable_declared_at_line_level1 = 1 > variable_declared_at_line_level2 = 2 > > def a(): > print variable_declared_at_line_level1 > print variable_declared_at_line_level2 > > def b(): > print variable_declared_at_line_level1 > print variable_declared_at_line_level2 > > a() > b() > >>> 1 > >>> 2 > >>> 1 > >>> 2 > > #example 2: > > def init_game_variables(): > global variable_declared_in_function1 > global variable_declared_in_function2 > variable_declared_in_function1 = 1 > variable_declared_in_function2 = 2 > > def a(): > global variable_declared_in_function1 > global variable_declared_in_function2 > print variable_declared_at_line_level1 > print variable_declared_at_line_level2 > > def b(): > global variable_declared_in_function1 > global variable_declared_in_function2 > print variable_declared_at_line_level1 > print variable_declared_at_line_level2 > > init_game_variables() > a() > b() > >>> 1 > >>> 2 > >>> 1 > >>> 2 > > # It's such a simple concept. I don't know why python doesn't have a > "declare-global-for-all-functions." I hate to have to type > "game.player" or "game.badguy" for every other thing too. It doesn't > make any sense. A variable should be able to be accessed with minimal > effort. Because that's what the whole program is about. Accessing > variables and displaying them. > > DO: > * Access variables. > (Move game according to current-variable-status and player-input) > > * Output to graphics and sound card. > (Display game according to current-variable-status.) > LOOP > > That's really all we need. > > And the more straight-forward it is, the less harder you make it for > yourself. > > Chart out the variables. Don't group any unnecessarily. > Chart out the functions. Don't put any functions inside of others > unnecessarily. > Simplify everything. Don't give unnecessary fancy names to anything > that shouldn't even be there in the first place. > Give everything sensible and technically accurate names. > > And your program should be so easy . . . > It saves hours of pointless conventional debugging and hair pulling > frustration. > I guess Python still has many flaws. > > On 3/10/12, Christopher Night <cosmologi...@gmail.com> wrote: > > It's not clear at all what you mean by "line-level". It sounds like you > > mean variables that are at the global scope, ie, you want to declare > global > > variables. The answer is you use the "global" keyword within the > function. > > Sorry if this seems like a lot of extra work, but I doubt you'll find > much > > sympathy, since what you're doing is discouraged by most python users. > > > > One other possibility that I doubt you'll prefer is declaring a global > > object, and every time you want to declare a variable on the global > scope, > > you set it to a member of that object. To wit: > > > > class globalstuff: pass > > > > def function1(): > > globalstuff.x = 100 > > > > def function2(): > > print globalstuff.x > > > > Don't freak out at the fact that I used the "class" keyword. globalstuff > is > > not what you normally think of as a class. That's just how you declare a > > namespace in python. > > > > If "line-level" means something other than global variables, please > explain > > in more detail. > > > > -Christopher > > > > On Sat, Mar 10, 2012 at 3:39 PM, Brian Brown <bro...@gmail.com> wrote: > > > >> My plan is to make my program "function-oriented." > >> (Much less complicated than creating unnecessary classes and modules > >> (each with more functions) for something as simple as a small game > >> with just integer variables and string variables.) > >> Only using "line-level" and "function-level" with "global variables" > >> makes everything simple and easy. I don't understand why there's so > >> much hype about creating a new "class" or "module" whenever possible-- > >> as if it will somehow magically make a program execute with more > >> satisfactory results. > >> > >> Thank you Ciro, but yes, I think you didn't answer my question. > >> > >> > >> On 3/10/12, Ciro Duran <ciro.du...@gmail.com> wrote: > >> > You can just declare your variables inside a function and their scope > >> will > >> > only reach inside that function. > >> > > >> > If you declare module variables (or global variables, if you fancy > that > >> > name more) you can refer them inside functions without adding > anything. > >> But > >> > if you want to assig something to the variable (eg. Create an object) > >> > you > >> > must specify the global keyword at the beginning of the function. > >> > > >> > Sorry if I didn't get the point of your question. > >> > > >> > Ciro > >> > > >> > El sábado 10 de marzo de 2012, Brian Brown <bro...@gmail.com> > escribió: > >> >> Hi pygame users, just a simple question-- How can one cause variables > >> >> at "function-level" to behave like variables at "line-level"? (With > >> >> basic python code) I just want to avoid using "global" over and over > >> >> again (in many different functions) while I want to declare, use, and > >> >> delete all my game's variables inside functions.Thanks. > >> >> Matt > >> >> > >> > > >> > > >