It's "class variable" because we (at least I) also routinely use "instance variable".
On Tue, May 16, 2017 at 4:23 PM, Steven D'Aprano <st...@pearwood.info> wrote: > Since PEP 526 is already provisionally accepted, it may be too late to > bring this up, but I have a question and suggestion about the name > ClassVar. I've read the PEP but didn't see an answer or rejection to > this. > > https://www.python.org/dev/peps/pep-0526/ > > Why choose ClassVar over ClassAttr when the usual terminology used in > the Python community is class and instance *attributes* rather than > "variables"? > > I understand that, in a sense, attributes are variables (unless they're > constants *wink*) but the term "class variable" sounds very Java-esque > rather than Pythonic. And it is an uncomfortable fit with a language > like Python where classes are first class values like ints, strings, > floats etc: > > - we talk about a string variable meaning a variable holding a string; > - a float variable is a variable holding a float; > - a list variable is a variable holding a list; > - so a class variable ought to be a variable holding a class. > > I get the intention: we have local, global, instance and class > variables. But I feel that grouping instance/class with local/global is > too abstract and "computer sciencey": in practice, instance/class vars > are used in ways which are different enough from global/local vars that > they deserve a different name: attributes, members or properties are > common choices. > > (Python of course uses attributes, and properties for a particular kind > of computed attribute.) > > This introduces split terminology: we now talk about annotating class > attributes with ClassVar. Since there's no GlobalVar, NonLocalVar or > LocalVar, there doesn't seem to be any good reason to stick with the > FooVar naming system. > > Can we change the annotation to ClassAttr instead? > > > > -- > Steve > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ > -- --Guido van Rossum (python.org/~guido)
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/