Il giorno lunedì 18 agosto 2014 19:13:08 UTC+2, Chris Kaynor ha scritto: > On Mon, Aug 18, 2014 at 10:00 AM, Beppe <giuseppe...@gmail.com> wrote: > > > hi to everybody, > > in the following scrip I try to call the function read_parameters () but > returns me that wants two arguments!?!?! > > My intent is to have in the class, Engine (), some static attributes that can > be used by other instances without to redefine this every time. > > These matters could be for example a path or a connection to a database. > > suggestions? > > > > regards > > beppe > > > > class Master(object): > > def __init__(self,): > > pass > > > > class Engine(Master): > > dict_parameters = {} > > def __init__(self,): > > super(Engine, self).__init__() > > > > @staticmethod > > def read_parameters(self,path): > > > > self.dict_parameters = {1:"a",2:"b"} > > > > What you probably want here, based on your description is (untested): > @classmethod > def read_parameters(cls, path): # Note, the name is "cls". This is not > required, but is convention, similar to "self". > > > cls.dict_parameters = {1:"a",2:"b"} > > > @staticmethod creates a method that does not receive any special parameter, > so the signature would be "def read_parameters(path)". > > > > > > Note that, personally, I would name the method "parse_parameters" to make it > clearer what it does. > > > > > > def check_parameters(self): > > self.read_parameters("hello_world") Perfet,
class Master(object): def __init__(self,): pass class Engine(Master): def __init__(self,): super(Engine, self).__init__() @classmethod def parse_parameters(cls, path): cls.dict_parameters = {1:"a",2:"b"} def check_parameters(self): self.parse_parameters("hello_world") def __str__(self): return "dict_parameters: %s" % self.dict_parameters foo = Engine() foo.check_parameters() bar = Engine() foobar = Engine() print foo print bar print foobar IDLE 2.6.6 ==== No Subprocess ==== >>> dict_parameters: {1: 'a', 2: 'b'} dict_parameters: {1: 'a', 2: 'b'} dict_parameters: {1: 'a', 2: 'b'} thanks a lot Chris -- https://mail.python.org/mailman/listinfo/python-list