M
Martin De Kauwe
Hi,
I am translating some c++ code to python and just wanted to ask some
advise on structure. The original has everything declared globally and
nothing passed via function (I assume, but don't know, that this isn't
just standard c++ practice!). So given this, I have a pretty much
clean slate as I can't quite just copy the functions over. I was
thinking something like this
class Params:
def __init__(self, fname):
self.set_inital_condtions()
self.read_input_file(fname)
def set_inital_conditons(self):
self.some_parm = 0.0
def read_input_file(fname):
#read file, change initial params if specified
then I thought I could pass this as an object to the model class
class Model(Params):
def __init__(self):
# blah
def some_func(self):
if (Params.some_param == something):
foo
OR this just a very bad way to structure it?
The other thing I can't decide on is how to pass the parameters and
variables through the class. So because of the way the original is
written (everything is global), I could just inherit things, but it
does means there is a lot of self. syntax. So I wondered if it might
be better to pass things as function arguments? Any thoughts? I am
also half considering other users from non-python backgrounds and what
might seem very alien (syntax) to them.
thanks in advance
(ps. I am cross posting this on comp.lang.python as I am not sure
where is more appropriate).
I am translating some c++ code to python and just wanted to ask some
advise on structure. The original has everything declared globally and
nothing passed via function (I assume, but don't know, that this isn't
just standard c++ practice!). So given this, I have a pretty much
clean slate as I can't quite just copy the functions over. I was
thinking something like this
class Params:
def __init__(self, fname):
self.set_inital_condtions()
self.read_input_file(fname)
def set_inital_conditons(self):
self.some_parm = 0.0
def read_input_file(fname):
#read file, change initial params if specified
then I thought I could pass this as an object to the model class
class Model(Params):
def __init__(self):
# blah
def some_func(self):
if (Params.some_param == something):
foo
OR this just a very bad way to structure it?
The other thing I can't decide on is how to pass the parameters and
variables through the class. So because of the way the original is
written (everything is global), I could just inherit things, but it
does means there is a lot of self. syntax. So I wondered if it might
be better to pass things as function arguments? Any thoughts? I am
also half considering other users from non-python backgrounds and what
might seem very alien (syntax) to them.
thanks in advance
(ps. I am cross posting this on comp.lang.python as I am not sure
where is more appropriate).