B
Bruno Desthuilliers
(e-mail address removed) a écrit :
(snip)
Marc and Diez already gave you the good answers on this (basically: get
rid of useless classes, and use plain functions instead of
staticmethods). I'd just add a couple comments:
First point: OO is not about classes, it's about objects - FWIW, the
mere concept of 'class' is nowhere in the definition of OO, and some
OOPLs don't even have that concept (cf Self and Javascript).
Second point : in Python, everything (well... almost - at least
everything that can be bound to a name) is an object. So Python's
modules and functions are objects.
Third point : "top-level" (aka 'module level', aka 'globals') names
(names defined outside classes or functions) are in fact module
attributes. So, to make a long story short, you can consider a module as
a kind of a singleton.
What I wanted to point out here is that there's much more to OO than
what one learns with Java - and, FWIW, much more to Python's object
model than what it may seems at first.
Ah, and, BTW : welcome here !-)
(snip)
(snip)I have another little question before I finish today:
I am currently struggling to use a global variable in my static
functions. I'll explain further
Within my main.py file I have
class Main(object):
stepStore = StepStore()
@staticmethod
def createDepSteps():
....
stepStore.addStep([bol7, pre5])
.......
@staticmethod
def processSteps():
for step in stepStore.stepList[:]:
......
Main.createDepSteps()
Main.processSteps()
Marc and Diez already gave you the good answers on this (basically: get
rid of useless classes, and use plain functions instead of
staticmethods). I'd just add a couple comments:
First point: OO is not about classes, it's about objects - FWIW, the
mere concept of 'class' is nowhere in the definition of OO, and some
OOPLs don't even have that concept (cf Self and Javascript).
Second point : in Python, everything (well... almost - at least
everything that can be bound to a name) is an object. So Python's
modules and functions are objects.
Third point : "top-level" (aka 'module level', aka 'globals') names
(names defined outside classes or functions) are in fact module
attributes. So, to make a long story short, you can consider a module as
a kind of a singleton.
What I wanted to point out here is that there's much more to OO than
what one learns with Java - and, FWIW, much more to Python's object
model than what it may seems at first.
Ah, and, BTW : welcome here !-)