Brian

20 November 2008
15:13

By brian as Python

Example of using dynamically created properties in class body.

1 class Mp3File(object):
2
3 # ...
4
5 # Translate names to appropriate tag.
6 _tags = {'album' : 'TALB',
7 'title' : 'TIT2',
8 'artist': 'TPE1',
9 'tracknumber' : 'TRCK',
10 'genre' : 'TCON'}
11
12 def make_prop(tag):
13 def getter(self):
14 val = self.tags.get(tag, None)
15 return val and val.text[0] or None
16
17 def setter(self, value, tag=tag):
18 self.tags[tag] = getattr(id3, tag)(text=value, encoding=3)
19 self.tags.save()
20 return property(getter, setter)
21
22 for name,tag in _tags.items():
23 locals()[name] = make_prop(tag)
24
25 del name,tag, make_prop

Download Raw Source

Comments

No comments so far.