OVH Cloud OVH Cloud

Probleme de classes (array)

16 réponses
Avatar
ian
Hello,

J'arrive de delphi et j'ai une question ...

J'aimerais faire un array de classes, a la delphi, pour stocker plusieurs
variables / classes.

Si j'arrive bien a en creer et a ajouter, je n'arrive pas par contre a
effacer...

class trial:
tmp=0
def func(self,x):
self.tmp=x
self.plop=x+10


arr=[]
for i in range(0,5):
inst=trial() #instance of trial class
arr.append(inst)
arr[i].func(i)



Il y a pas plus simple ? a la delphi ?

Style : je declare :

obj.create...
obj.x -> integer
obj.y -> string

...

mobj := mobj
add(mobj)
mobj(index).x := 2
mobj(index).y := "hello"


....

mobj(2).delete (on efface le 2eme de la liste)

mobj.clear (on vide toute la liste)...


bref vous voyez ce que je veux dire ... car la ca fait 1 heure que je
cherche sur google, je dois pas chercher comme il faut :(

Merci

6 réponses

1 2
Avatar
JB
Ok merci j'ai pu effacer...

Est-ce que tu connais un site qui detaille ca ? la facon propre de creer,
d'utiliser etcetc

Par exemple pour connaitre le nombre d'elements dans une liste ...


tu peux faire help([]) dans un prompt python pour obtenir de l'aide sur
les fonctions de l'objet (ici une liste vide)

cdlt

Avatar
Michel Claveau
Salut !

inférence de type




Bof ; les inférences de type sont limitées par le polymorphisme du
langage, encadré par un typage fort.

En gros, ce n'est qu'un ersatz de cast automatique.

En pratique, on pourra toujours avoir une expression susceptible de
mettre en défaut le typage statique, malgré l'inférence de type (on
peut avoir le même genre de problème en Python, mais le typage statique
était sensé s'en prémunir).


Pour le reste ("troll"), j'étais sûr de te faire réagir. Le mot (le
nom) utilisé doit correspondre à méthode mal "deprecated" de la class
Bruno...



--
@-salutations

Michel Claveau



Avatar
Bruno Desthuilliers
Michel Claveau wrote:
Salut !

inférence de type




Bof ; les inférences de type sont limitées par le polymorphisme du
langage, encadré par un typage fort.

En gros, ce n'est qu'un ersatz de cast automatique.


Que voilà une vision bien lapidaire... Tu a déjà travaillé avec un
langage utilisant un typage par inférence, ou ce n'est qu'un a priori ?-)

En pratique, on pourra toujours avoir une expression susceptible de
mettre en défaut le typage statique, malgré l'inférence de type (on peut
avoir le même genre de problème en Python, mais le typage statique était
sensé s'en prémunir).


L'intérêt premier (et la raison d'être essentielle) du typage statique
n'est pas de limiter les erreurs de programmation, mais de fournir au
compilateur des indices pour des optimisations possibles.


Pour le reste ("troll"), j'étais sûr de te faire réagir.


Facile !-)

Le mot (le nom)
utilisé doit correspondre à méthode mal "deprecated" de la class Bruno...


Disons que le souvenir est encore très douloureux...

--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"




Avatar
Bruno Desthuilliers
JB wrote:
Ok merci j'ai pu effacer...

Est-ce que tu connais un site qui detaille ca ? la facon propre de creer,
d'utiliser etcetc

Par exemple pour connaitre le nombre d'elements dans une liste ...


tu peux faire help([]) dans un prompt python pour obtenir de l'aide sur
les fonctions de l'objet (ici une liste vide)


Ce qui - bien que par ailleurs un excellent conseil - ne donnera pas à
l'OP la fonction len(), puisque celle-ci n'est pas une méthode de la
classe list.


--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"


Avatar
Jerome
Bruno Desthuilliers wrote:
JB wrote:
Ok merci j'ai pu effacer...

Est-ce que tu connais un site qui detaille ca ? la facon propre de creer,
d'utiliser etcetc

Par exemple pour connaitre le nombre d'elements dans une liste ...
tu peux faire help([]) dans un prompt python pour obtenir de l'aide sur

les fonctions de l'objet (ici une liste vide)


Ce qui - bien que par ailleurs un excellent conseil - ne donnera pas à
l'OP la fonction len(), puisque celle-ci n'est pas une méthode de la
classe list.




il aura par contre la fonction __len__ qui est bien une méthode de la
classe list et l'info x.__len__() <==> len(x)



Avatar
Méta-MCI
Bonsoir !

Que voilà une vision bien lapidaire... Tu a déjà travaillé avec un
langage utilisant un typage par inférence, ou ce n'est qu'un a priori
?-)




C'est surtout un a priori.

J'avais bien regardé Ocaml, qui ne m'a guère inspiré.
J'ai essayé de HaskellScript (version ActiveScripting de Haskell), qui n'a
plus évolué depuis cinq ans, et ne fonctionne plus que dans des conditions
très particulières, à tel point que j'ai dû renoncer.

Mais, on ne peut pas dire que j'ai vraiment pratiqué l'inférence de types.

Donc, oui, c'est un a priori. Mais un a priori (un peu) réfléchi.


@-salutations

Michel Claveau



1 2