[Python-3000] symbols?

Jim Jewett jimjjewett at gmail.com
Tue Apr 18 20:58:42 CEST 2006


On 4/14/06, Guido van Rossum <guido at python.org> wrote:
> Then, on 4/14/06, Nick Coghlan <ncoghlan at gmail.com> wrote:
> [...]
> class C:
>   x = property(._get_x, ._set_x, ._del_x,
>                "This is the x property")
> [...]

> This is slightly more Pythonic, and unambiguous, but I'd rather
> reserve leading dot for a more powerful feature, perhaps .foo as an
> abbreviation for self.foo, or some other scope-ish operator. (I also
> note that in a proportional font the . is easily missed.)

Does that conflict?  Wouldn't self._get_x fall through to
self.__class__._get_x, which is exactly what you want?  (Except that
you *might* the ability to override methods on a per-instance basis.)

> So this begs the question: would the following assertion pass or fail?
>
>     assert .foo == "foo"
>
> What about this one?
>
>     assert type(.foo) == str

If .foo is a syntactic change, it might not require that an object be
created (for the name) at all.  That said, if an object is created,
then I believe

    assert .foo is "foo"

should be true, because foo is constant string that looks like a name,
and should therefore be interned.

-jJ


More information about the Python-3000 mailing list