formation pour developpeurs Java

formation pour developpeurs Java - Python - Programmation

Marsh Posté le 02-06-2004 à 14:50:19    

Je dois préparer une formation Python pour des developpeurs Java, dans l'optique d'une utilisation avec Zope & ZPT.
 
J'avais pensé a un truc du genre pour le moment :


1. Présentation générale
2. Changements sytaxique // java
 > pas de ;
 > affectations
 > if / else (pas de switch)
 > boucles while & for
 > exception
 > blocs par indentation
 > l'instruction pass
3. Les types de données
 > types de bases (string, int, ...)
  > quelques methodes de chaines
 > liste & tuple
  > methodes de liste
  > lambda & list comprehension
 > dictionnaires
  > methodes de dico
4. Les fonctions
 > syntaxe (def, ...)
 > parametres optionnels
 > appel avec parametres nommés
 > retour de valeurs multiples
5. Les classes
 > exemple
 > heritage multiple
 > pas d'accesseurs privés / publiques
 > __init__ (ptet un mot sur __new__)
 > self, equivalent a this, mais explicite
 > staticmethod / classmethod
  > en java, y'a que staticmethod
 > les propertiétés (property)
6. La notion de module
 > 1 fichier == 1 module
 > +/- equivalent aux packages java
 > sous modules, avec l'utilisation de répertoire


Vous voyez des choses qui manquent ?


Message édité par lorill le 02-06-2004 à 15:36:52
Reply

Marsh Posté le 02-06-2004 à 14:50:19   

Reply

Marsh Posté le 02-06-2004 à 14:56:26    

C'est pour quelle version de Python ça ? Si c'est pour une version assez récente, il faudra penser à leur montre la sytnaxe staticmethod/classmethod et et property avec get/set pour ne pas trop les depayser
 
Et un chapitre pour montrer l'usage des iterateurs serait pas mal aussi.

Reply

Marsh Posté le 02-06-2004 à 15:01:27    

recente (> 2.2)
les staticmethoc/classmethod, je connais pas (je me suis arreté juste avant la 2.2), mais j'en ai pas vu dans Zope. T'as un lien quelque part ?
 
Les iterateurs, c'est encore avec les generateurs, ou c'est mieux maintenant ?

Reply

Marsh Posté le 02-06-2004 à 15:01:41    

insiste bien sur le côté for (foreach en fait, pour ne pas voir des i = 0 while i< ...), sur le fait que tout est dictionnaire, sur les petits sucres (lambda et surtout list comprehension)
 
après pour l'objet, cherche pas comprendre, tu leur fais faire du tout object
 
 
 
 
 
 
pas de constructeur : __init__  ?????
 
 
ah oui, j'oubliais : les finaliseurs (__del__) qui sont appelés (pas la peine de fermer les fichiers explicitement, etc


Message édité par Taz le 02-06-2004 à 15:02:19
Reply

Marsh Posté le 02-06-2004 à 15:03:26    

Taz a écrit :


pas de constructeur : __init__  ?????


oui, c'est mal formulé

Reply

Marsh Posté le 02-06-2004 à 15:04:32    

Taz a écrit :


après pour l'objet, cherche pas comprendre, tu leur fais faire du tout object


je vais etre fin apres pour expliquer qu'un script dans zope, c'est un fichier == une fonction moi

Reply

Marsh Posté le 02-06-2004 à 15:05:34    

non je veux dire du tout  class Foo(object) :o


Message édité par Taz le 02-06-2004 à 15:05:52
Reply

Marsh Posté le 02-06-2004 à 15:06:48    

Taz a écrit :

non je veux dire du tout  class Foo(object) :o


j'ai jamais utilisé cette notation :sweat:
tain y'a eu que des petites evolutions depuis que j'ai décroché, mais mise bout a bout ca fait beaucoup quand même

Reply

Marsh Posté le 02-06-2004 à 15:09:15    

ah ouais, genre t'es resté à la 1.5 ...lis déjà les Changelog de la 2.2 et de la 2.3
après si t'as des questions, je t'attends, je suis très au courant de tout ça

Reply

Marsh Posté le 02-06-2004 à 15:10:08    

Taz a écrit :

ah ouais, genre t'es resté à la 1.5 ...


non, quand même (pas de +=, les methodes de string uniquement via le module, argh)

Reply

Marsh Posté le 02-06-2004 à 15:10:08   

Reply

Marsh Posté le 02-06-2004 à 15:11:01    

Taz a écrit :

ah ouais, genre t'es resté à la 1.5 ...lis déjà les Changelog de la 2.2 et de la 2.3
après si t'as des questions, je t'attends, je suis très au courant de tout ça


bah sinon si t'as le n° de la PEP qui va bien, ca me fera de la lecture.
j'ai laché quand ils ont ajouté le booléen en fait (c'est pas la raison, mais ca situe le moment). Donc tout ce qu'il y a apres, zap.

Reply

Marsh Posté le 02-06-2004 à 15:11:19    

La principale évolution viens des new style objects ( en heritant de object donc )
 
Elle permet la definition de staticmethod/classmethod/property getter et setter facilement sans avoir à faire appel aux metaclass
 
Pour les iterateurs, ils sont toujours créés en passant par yield mais c'est surtout pour insister sur leur usage car ils sont vraiment très pratiques ( notion de foreach indiquée par Taz ) et sont faciles à écrire.
 
Et bientot, dans Python 2.4, les list-comprehensions vont muter pour nous donner les iterator-comprehension :D

Reply

Marsh Posté le 02-06-2004 à 15:14:11    

Au fait, voici une page qui explique les gros changements qu'il y a eu avec l'unification des type en Python : http://www.python.org/2.2.2/descrintro.html

Reply

Marsh Posté le 02-06-2004 à 15:15:49    

merci :jap:
je lis tout ca et je reviens

Reply

Marsh Posté le 02-06-2004 à 15:37:55    

j'ai lu, 1er message mis a jour.
en fait hériter d'object permet "juste" d'avoir accès a la nouvelle api, d'avoir les propriétés, ... j'ai bon ?

Reply

Marsh Posté le 02-06-2004 à 15:45:56    

http://docs.python.org/whatsnew/whatsnew23.html
 
oui, et c'est très important. ça unifie aussi le système de typage
 
 
attends ce soir, je te mail un Impress


Message édité par Taz le 02-06-2004 à 15:46:20
Reply

Marsh Posté le 03-06-2004 à 14:51:36    

Taz a écrit :


attends ce soir, je te mail un Impress


j'ai rien eu

Reply

Marsh Posté le 04-06-2004 à 07:14:21    

merde
 
edit: le mail m'est revenu, j'ai ressayé, idem


Message édité par Taz le 04-06-2004 à 07:26:38
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed