[Tutor] Question on classes/instances
mailing list
ml.cyresse at gmail.com
Wed Aug 10 09:52:09 CEST 2005
Erk, I of course meant -
path = os.path.join('categories', self.name)
On 8/10/05, mailing list <ml.cyresse at gmail.com> wrote:
> Hi Negroup,
>
> First off, you may want to use os.path.join to create paths -
>
> path = 'categories/%s' % self.name
>
> could be -
>
> path = os.path.join(categories, self.name)
>
> This will ensure minimum hassle if you ever want to use this across
> multiple OS.
> Also, it looks a little tidier, and IMAO, tidier code is easier to maintain.
>
> As for what you're wanting to do with the list comprehension, once
> again I'd use os.path.join, but otherwise your comprehension looks
> workable.
>
> On 8/10/05, Negroup - <negroup at gmail.com> wrote:
> > Hi, Sorry for the subject a bit generic. This question comes from a
> > simple program I'm doing. I could have a working solution, but
> > considering my inexperience, I'm just asking if my approach is
> > acceptable.
> >
> > This is a simple class to manage (actually to create and save)
> > categories of things. Categories are represented as directories, while
> > descriptions of categories are stored inside a file called
> > .description inside the category directory. Look at the code..
> >
> > class Category:
> > def __init__(self, name=None, description=None):
> > self.description = description
> > if name:
> > self.name = name
> > else:
> > return 'Value expected'
> >
> > def save(self):
> > from os import access, F_OK, mkdir
> >
> > path = 'categories/%s' % self.name
> > if access(path, F_OK):
> > return 'Category already present'
> > else:
> > mkdir(path)
> > if self.description:
> > f = file('%s/.description' % path, 'w')
> > f.write(self.description)
> > f.close()
> >
> > and this is a simple function to get a list of categories, inside the
> > same module of Category:
> > def get_categories():
> > from os import listdir
> > return listdir('categories')
> >
> > I would instead, that get_categories returns a list of instances of
> > Category class instead of a list of strings, so that I can handle
> > categories with proper APIs. I found this way:
> >
> > def get_categories():
> > from os import listdir
> > # return listdir('categories')
> > path = 'categories'
> > categories = [Category(name, file('%s/%s/.description' %
> > (path, name)).read()) for name in listdir('categories')]
> > return categories
> >
> > Is it a good way to solve the problem? Otherwise, I would be glad if
> > you could propose better solutions.
> >
> > Thanks for any clarification.
> > _______________________________________________
> > Tutor maillist - Tutor at python.org
> > http://mail.python.org/mailman/listinfo/tutor
> >
>
More information about the Tutor
mailing list