Movatterモバイル変換


[0]ホーム

URL:


[Python-Dev] SWIG and rlcompleter

M.-A. Lemburgmal at egenix.com
Thu Aug 18 09:36:14 CEST 2005


James Y Knight wrote:> On Aug 17, 2005, at 2:55 PM, Timothy Fitz wrote:>>>>On 8/16/05, Raymond Hettinger <raymond.hettinger at verizon.net> wrote:>>>>>>>-0  The behavior of dir() already a bit magical.  Python is much>>>simpler>>>to comprehend if we have direct relationships like dir() and vars()>>>corresponding as closely as possible to the object's dictionary.  If>>>someone injects non-strings into an attribute dictionary, why should>>>dir() hide that fact?>>>>>>>Indeed, there seem to be two camps, those who want dir to reflect>>__dict__>>and those who want dir to reflect attributes of an object. It seems to>>me that those who want dir to reflect __dict__ should just use>>__dict__ in the first place.>>>>However, in the case of dir handling non-strings, should dir handle>>non-valid identifiers as well, that is to say that while>>foo.__dict__[2] = ... is an obvious case what about foo.__dict__["1"]>>?>>>>Right now the documentation says that it returns "attributes", and I>>would not consider non-strings to be attributes, so either the>>documentation or the implementation should rectify this disagreement.>>>>> I initially was going to say no, there's no reason to restrict your> idea of "attributes" to be purely strings, because surely you could> use non-strings as attributes if you wished to. But Python proves me> wrong:>  >>> class X: pass>  >>> X.__dict__[1] = 5>  >>> dir(X)> [1, '__doc__', '__module__']>  >>> getattr(X, 1)> TypeError: getattr(): attribute name must be string>> If dir() is supposed to return the list of attributes, it does seem> logical that it should be possible to pass those names into getattr.> I think I'd actually call that a defect in getattr() that it doesn't> allow non-string attributes, not a defect in dir(). Ooh...even more> annoying, it doesn't even allow unicode attributes that use> characters outside the default encoding (ASCII).Which is quite natural: Python doesn't allow any non-ASCIIidentifiers either :-)> But either way, there's absolutely no reason to worry about the> attribute string being a valid identifier. That's pretty much only a> concern for tab-completion in python shells.-- Marc-Andre LemburgeGenix.comProfessional Python Services directly from the Source  (#1, Aug 18 2005)>>> Python/Zope Consulting and Support ...http://www.egenix.com/>>> mxODBC.Zope.Database.Adapter ...http://zope.egenix.com/>>> mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/________________________________________________________________________::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::


More information about the Python-Devmailing list

[8]ページ先頭

©2009-2025 Movatter.jp