Change temp names created by listcomps from [%d] to _[%d], so the one-liner

[k for k in dir() if k[0] != "_"]
can be used to get the non-private names (used to contain "[1]").
This commit is contained in:
Tim Peters 2001-02-17 05:30:26 +00:00
parent 27eba5e888
commit 3081421d9e
1 changed files with 2 additions and 2 deletions

View File

@ -1309,7 +1309,7 @@ com_list_comprehension(struct compiling *c, node *n)
{
/* listmaker: test list_for */
char tmpname[12];
sprintf(tmpname, "[%d]", ++c->c_tmpname);
sprintf(tmpname, "_[%d]", ++c->c_tmpname);
com_addoparg(c, BUILD_LIST, 0);
com_addbyte(c, DUP_TOP); /* leave the result on the stack */
com_push(c, 2);
@ -4689,7 +4689,7 @@ symtable_list_comprehension(struct symtable *st, node *n)
{
char tmpname[12];
sprintf(tmpname, "[%d]", ++st->st_tmpname);
sprintf(tmpname, "_[%d]", ++st->st_tmpname);
symtable_add_def(st, tmpname, DEF_LOCAL);
symtable_assign(st, CHILD(n, 1), 0);
symtable_node(st, CHILD(n, 3));