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