kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
Get all kandi verified functions for this library.
Export data from ACF files to several formats (csv, yml, json, xml, vdf)
Support for multiple Steam libraries
Locate unused steam game directories (those which aren't referenced in any ACF)
Supports Windows, Linux, Mac OS X
See all related Code Snippets
Python: implement a "software-wide" setting that does not change often without running an if statement in every loopAsked 2022-Apr-07 at 16:09
I want Python to kind of ignore a statement that is unlikely to be called in a function that is often called.
I do not have a formal education in programming, so please excuse my lackluster ability to desribe things. I will try to explain the concept by example.
Say I am writing a video game, first-person shooter, drawing 60 frames per second.
In the settings menu, the user can select whether or not to display the name of other players above their head. If they disable this, I store this value as
showplayernames = False.
Then in my drawing function that outputs the graphics I have:
def draw(): #code that draws the graphics on screen if showplayernames: #code that draws the name of players on screen
I call this function 60 times a second, but there is absolutely no point for checking if showplayernames is True 60 times a second. It will not change that often, in fact I could make this a kind of "constant" during play by preventing it to change. If showplayernames is False, then the third and fourth lines of the code are completely redundant, but they are executed nevertheless. The computer isn't smart enough to know it can ignore it, and there is a performance difference: reading a value and then checking if it is false takes time.
I could write two copies of the game (or at least the draw() function), one with only the first two lines when the user selects not to show names in the settings, and another without the if statement, and then run the appropriate one.
def draw_with_names(): #code that draws the graphics on screen #code that draws the name of players on screen def draw_without_names(): #code that draws the graphics on screen
Although looping through either of these 60 times a second is more efficient than running
draw() ,this is obviously not the way to go. There are dozens of settings like this.
So how do software and game designers implement these kind of "software-wide" settings efficiently?
ANSWERAnswered 2022-Apr-07 at 15:38
not an game designer, but here is my voice. You could store settings inside json file next to you python, but then you need to cover reading, getting right values etc.
You could use Environment variables to store value but that would end up using still "if" in the code.
Game designers use triggers and events to get things done, and on the lowest level I would assume those things also use if's.
system-wide-settings will in the end be used with if's
You could use overwrites based on event/trigger and use "same" draw function in both times but that only complicates code, and we all know to "keep it simple".
Sorry if this is not the answer you were looking for.
No vulnerabilities reported
Find more information at:
Open Weaver – Develop Applications Faster with Open Source