Misunderstanding classes (newbie)

Jerry 2jerry at writeme.com
Thu Feb 24 15:55:40 EST 2000


resending ..
Jerry <2jerry at writeme.com> a écrit dans le message ...
>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