Do you have a dumb question that you're kind of embarrassed to ask in the main thread? Is there something you're just not sure about?
This is your opportunity to ask questions. No question too simple or too silly.
Culture war topics are accepted, and proposals for a better intro post are appreciated.
Jump in the discussion.
No email address required.
Notes -
There's nothing like the partial class concept from C#, though I agree it would be really nice if there were.
You can kinda fake it by exploiting the heck of out inheritance, in a couple different ways, depending on what level of composition you're aiming to be able to do. If you want selective import of behaviors (and to avoid the diamond inheritance problem, mostly), you can do something like :
agentInfectionLogic,py:
agentFileLogic,py:
agent,py:
And then calls like
world.knownAgents[0].loadInfectionInfo()
orworld.infectRandomAgent()
would work as normal, and you can even swap between different experimental forms by havingfrom agentInfectionLogic import infectedCount, incrementInfection, countedInfections, wasInfected
orfrom testAgentInfectionLogic import infectedCount, incrementInfection, countedInfections, wasInfected
(or even a mix-and-match between the two).Agent.py has to know about what's going on, but to everywhere else, anything imported into agent.py looks identical to as if it were coded into that file or class. Eventually this turns into a full module, where the
__init__.py
file holds the glue and then you have better names for your actual logic .pys, but when that makes sense depends a lot on the scale of your project.More options
Context Copy link