append to non-existing list

Yves Glodt y.glodt at sitasoftware.lu
Wed Nov 9 08:32:07 EST 2005


skip at pobox.com wrote:
>     Yves> My question is: Is there no way to append to a non existing list?
> 
> My question in return is: How is Python supposed to know that pkcolumns is
> supposed to be a list instead of some other type of object that happens to
> define an append() method?

I am fairly new to python (and I like it more and more), but I can not 
answer this question... As I said, where I come from it is possible, and 
how they do it is explained a little here:
http://lu.php.net/manual/en/language.types.type-juggling.php

As I want to learn, I will work with python the pythonic way, but 
sometimes I just fall back to what I know from php... :-)



Thanks for your answer and the example code,
Yves

p.s.
thanks for the "import this" hint

> For example, my code might contain this class
> definition before the suspect pkcolumns.append() call:
> 
> class MaxLengthList:
>      def __init__(self, maxsize=0):
>          self.data = []
>          self.maxsize = maxsize
> 
>      def append(self, item):
>          if self.maxsize and len(self.data) == self.maxsize:
>              del self.data[0]
>          self.data.append(item)
> 
>     def __getattr__(self, attr):
>         return getattr(self.data, attr)
> 
> I think it would be perfectly reasonable for Python to choose to instantiate
> my MaxLengthList instead of a plain old list.
> 
>     Yves> I am lazy for declaring it first, IMHO it bloats the code, and
>     Yves> (don't know if it's good to say that here) where I come from (php)
>     Yves> I was used to not-needing it...
> 
> I don't know php, but would also have to wonder how it knows to create a
> list instead of an integer (for example).
> 
> Finally, from the Zen of Python (try "import this" at an interpreter
> prompt): 
> 
>     In the face of ambiguity, refuse the temptation to guess.
> 
> Skip
> 
> .
> 



More information about the Python-list mailing list