[Python-Dev] PEP for Better Control of Nested Lexical Scopes (original) (raw)
Steven Bethard steven.bethard at gmail.com
Tue Feb 21 22:47:42 CET 2006
- Previous message: [Python-Dev] Using and binding relative names (was Re: PEP for Better Control of Nested Lexical Scopes)
- Next message: [Python-Dev] PEP for Better Control of Nested Lexical Scopes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 2/21/06, Josiah Carlson <jcarlson at uci.edu> wrote:
The question which still remains in my mind, which I previously asked, is whether the use cases are compelling enough to warrant the feature addition.
I don't know whether I support the proposal or not, but in reading Mark Russel's email, I realized that I just recently ran into a use case:
group tokens into chunks by their chunk labels
token_groups = [] curr_suffix = '' curr_tokens = [] for token in document.IterAnnotations('token', percent=80): label = token[attr_name]
# determine the prefix and suffix of the label
prefix, suffix = label[0], label[2:]
# B labels start a new chunk
if prefix == 'B':
curr_suffix = suffix
curr_tokens = [token]
token_groups.append((curr_suffix, curr_tokens))
# I labels continue the previous chunk
elif prefix == 'I':
if curr_suffix == suffix:
curr_tokens.append(token)
# error: change in suffix - this should be a B label
else:
# log the error
message = '%r followed by %r'
last_label = curr_tokens[-1][attr_name]
self._logger.info(message % (last_label, label))
# start a new chunk
curr_suffix = suffix
curr_tokens = [token]
token_groups.append((curr_suffix, curr_tokens))
# O labels end any previous chunks
elif prefix == 'O':
curr_suffix = suffix
curr_tokens = [token]
You can see that the code::
curr_suffix = suffix
curr_tokens = [token]
token_groups.append((curr_suffix, curr_tokens))
is repeated in two places. I would have liked to factor this out into
a function, but since the code requires rebinding curr_suffix and
curr_tokens, I can't. I'm not sure I care that much -- it's only
three lines of code and only duplicated once -- but using something
like curr_suffix :=
or Phillip J. Eby's suggestion of
.curr_suffix =
would allow this code to be factored out into a
function.
STeVe
Grammar am for people who can't think for myself. --- Bucky Katt, Get Fuzzy
- Previous message: [Python-Dev] Using and binding relative names (was Re: PEP for Better Control of Nested Lexical Scopes)
- Next message: [Python-Dev] PEP for Better Control of Nested Lexical Scopes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]