Misunderstanding classes (newbie)

Jerry 2jerry at writeme.com
Wed Feb 23 23:35:56 CET 2000


ok ...

we need to add a class the idex slice will done by playing with getitem
function

>>>class sliced_list:
          def __init__(s,first_index=1):  #1 by default
              s.f_idx=first_index
              s.list=[]
          def __getitem__(s,idx=s.f_idx):
              return s.list[idx-s.f_idx]

then
with class lm:
>>> a=sliced_list()
>>> a.list.append(lm('paul','DUBOIS',45))
and du coup* (then)
>>>a[1].lastname
paul
>>>a[0].lastname
paul
** Right cause index will be modulo-ed :)) .. add:
>>>a.list.append(lm('david','Asher',31)
>>>a[1].lastname
paul
>>>a[2].lastname
david
>>>a[3].lastname
paul
...
use __setitem__ to update :)

jerry the foolish dracomorpheus,


sorry at spam.invalid a écrit dans le message ...
>Thanks for replying.  You've written part (b), which I was also
>able to do.  But how do I get (a) the modified UserList and (b)
>the list of class elements into a single instance?  I want
>
>   a[whatever_I_decide_is_the_start_of_the_list].lastname
>
>to return
>
>   a[0].lastname
>
>automatically, and have whatever_I_decide_is_the_start
>_of_the_list default to 1 when I create an instance of
>the class.
>
>Jerry <2jerry at writeme.com> wrote:
>> This is just a list of class elements ? no ?
>> class lm:
>>    def __init__(self, last=None,first=None,age=0):
>>        self.lastname=last
>>        self.firstname=first
>>        self.age=age
>
>> then ..
>> list_lm=[]
>> a=lm('jerome','VACHER',29)
>> list_lm.append(a)
>> list_lm.append(lm('paul','DUBOIS',45))
>> a[0].lastname='jerome'
>
>> Is that you want ?
>
>
>> sorry at spam.invalid wrote:
>>>Hi,
>>>
>>>I'm a Python newbie (and an OOP newbie) trying to
>>>construct a class that:
>>>
>>>  (a) behaves like a list but has a FORTRAN-like variable
>>>      starting index,
>>>  (b) has per-index attributes.
>>>
>>>i.e. Each element of the list has two (or more) attributes,
>>>     and, by default, the first element is at x[1].
>>>
>>>e.g. x[1].lastname, x[1].firstname, x[1].age
>>>     x[2].lastname, x[2].firstname, x[2].age
>>>
>>>I seem to be able to get each part of the solution
>>>independently (the first part by using UserList and
>>>__getitem__), but when I attempt to combine them, I
>>>clearly don't understand what I'm doing.
>>>
>>>Suggestions?
>>>
>>>Thanx.
>>>
>>>P.S. Please respond to the list.





More information about the Python-list mailing list