Movatterモバイル変換


[0]ホーム

URL:


[Python-Dev] SWIG and rlcompleter

Guido van Rossumgvanrossum at gmail.com
Wed Aug 17 21:10:15 CEST 2005


On 8/17/05, Timothy Fitz <firemoth at gmail.com> 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.Right.> 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"]> ?See below.> 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 think that dir() should hide non-strings; these aren't attributes ifyou believe the definition that an attribute name is somethingacceptable to getattr() or setattr().Following this definition, the string "1" is a valid attribute name(even though it's not a valid identifier), but the number 1 is not.Try it. :-)-- --Guido van Rossum (home page:http://www.python.org/~guido/)


More information about the Python-Devmailing list

[8]ページ先頭

©2009-2025 Movatter.jp