On Thu, Sep 7, 2017 at 8:16 AM, Steve D'Aprano <steve+pyt...@pearwood.info> wrote:
> On Thu, 7 Sep 2017 07:20 pm, Leam Hall wrote: > > > OOP newbie on Python 2.6. > > Python 2.6 is ancient, and is missing many nice features. You should > consider > using the latest version, 3.6. > I've wrestled with that discussion for a while and Python 3 loses every time. There's literally no good reason for me to move to Python 3 earlier than mid-2020's. Please accept the fact that there are hundreds of thousands of servers, if not millions, running Python 2.x. Whether or not Python 3 has any neat cool stuff is irrelevant to those of us seeking to use Python to get today's work done. > I create instances of Character class with an attribute dict of > > 'skills'. The 'skills' dict has the name of a skill as the key and an > > int as a value. The code adds or modifies skills before outputting the > > Character. > > > > Is it better design to have a Character.method that takes a 'skill' key > > and optional value or to have a general function that takes an instance, > > a dict, a key, and an optional value? > > I'm afraid your example is too generic for me to give an opinion. Do you > literally mean a method called "method"? What does it do? > Using this: https://github.com/makhidkarun/py_tools/blob/master/lib/character.py Line 19 sets "self.skills" either from the passed in data or from https://github.com/makhidkarun/py_tools/blob/master/lib/character_tools.py#L34-L48 So Character.skills is a dict with a string key and an int value. I need to be able to add skills and my first attempt is a function: https://github.com/makhidkarun/py_tools/blob/master/lib/character_tools.py#L52-L56 Should the "add_skills" function be a method in the character class or be made a more generic function to add/modify a key/value pair in a dict that is an attribute of an instance? Other tasks will require the add/modify functionality but coding that increases complexity. At least for me, anyway. Sorry about being unclear earlier, coffee was still kicking in and I'm still a newbie that mixes up terms. Leam -- https://mail.python.org/mailman/listinfo/python-list