That's what I thought too, but:

$ python3
Python 3.4.0 (default, Apr 19 2014, 12:20:10)
[GCC 4.8.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> class Some(object):
...   tokens = ['a', 'b', 'c']
...   untokenized = [Some.tokens.index(a) for a in ['b']]
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in Some
  File "<stdin>", line 3, in <listcomp>
NameError: name 'Some' is not defined


On 30/05/14 16:07, Sven Marnach wrote:
On 30 May 2014 15:49, Harry Percival <harry.perci...@gmail.com <mailto:harry.perci...@gmail.com>> wrote:

    I had the problem outside of a class body, in a normal function...

The particular problem mentioned in the StackOverflow quesiton you linked only ever occurs inside class bodies. They are the only enclosing scopes that are skipped in name lookups. You can still access class attributes of the class by using ClassName.attribute inside the list comprehension, like you would have to do to access class attributes from inside methods.

Cheers,
    Sven



_______________________________________________
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk

--
Jonathan Hartley    tart...@tartley.com    http://tartley.com
Made of meat.       +44 7737 062 225       twitter/skype: tartley

_______________________________________________
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk

Reply via email to