Comment python sait si une méthode est "d'origine" ou modifiée ??
4 réponses
Laurent Claessens
Bonjour
J'ai =E9t=E9 un peu =E9tonn=E9 avec ce code :
+++++++++++++++++++++++++++++++++++++++++
#! /usr/bin/python
# -*- coding: utf8 -*-
class MaClasse(object):
def __init__(self,a):
self.a=3Da
def methode(self,x):
return self.a+x
def remethode(obj,x):
return obj.a*x
A=3DMaClasse(2)
A.methode=3Dremethode # LA SUBTILIT=C9 DU CODE EST ICI
print A.methode(3)
+++++++++++++++++++++++++++
cela m'a retourn=E9 :
TypeError: remethode() takes exactly 2 arguments (1 given)
En y pensant, j'ai compris : quand j'=E9cris
A.methore=3Dremethode
alors python fait vraiment que appeller A.methode est la m=EAme chose
qu'appeller la fonction remethode.
Mais par ailleurs, python a la convention de mettre self en premier
argument, non ?
Pour autant que j'ai compris python, si je n'avais pas substitu=E9 ma
m=E9thode, faire
A.methode(3)
ferait la m=EAme chose que
MaClasse.methode(A,3)
Comment fais-je pour modifier le comportement d'une m=E9thode pour
certaines instances d'une classe et pas pour d'aurtes ?
PS: note que par convention les noms d'instances commencent g�n�ralement par une minuscule. (Cf. http://www.python.org/dev/peps/pep-0008/ )
À chaque fois que je lis cette page, je souffre énormément, entre autres parce que je me dis que je devrais me mettre aux espaces au lieu des TAB ... et modifier en conséquence ma config de vim, ce qui me prend à chaque fois des heures :(
Si tu envisages de développer en collaboration avec d'autres personnes, c'est indispensable à mon avis.
set tabstop=4 set expandtab
et éventuellement :retab pour mettre à jour tes fichiers existants.
Moi, pour éviter d'avoir à reconfigurer Vim sur chaque machine que j'utilise, je stocke ma conf dans un gestionnaire de code source (en l'occurence Git). Ainsi si je fais des modifs sur une machine donnée, je les envoie vers le dépot et je peux les récupérer facilement depuis les autres machines.
On 23/01/11 21:48, Laurent Claessens wrote:
PS: note que par convention les noms d'instances commencent g�n�ralement
par une minuscule.
(Cf. http://www.python.org/dev/peps/pep-0008/ )
À chaque fois que je lis cette page, je souffre énormément, entre
autres parce que je me dis que je devrais me mettre aux espaces au
lieu des TAB ... et modifier en conséquence ma config de vim, ce qui
me prend à chaque fois des heures :(
Si tu envisages de développer en collaboration avec d'autres personnes,
c'est indispensable à mon avis.
set tabstop=4
set expandtab
et éventuellement :retab pour mettre à jour tes fichiers existants.
Moi, pour éviter d'avoir à reconfigurer Vim sur chaque machine que
j'utilise, je stocke ma conf dans un gestionnaire de code source (en
l'occurence Git). Ainsi si je fais des modifs sur une machine donnée, je
les envoie vers le dépot et je peux les récupérer facilement depuis les
autres machines.
PS: note que par convention les noms d'instances commencent g�n�ralement par une minuscule. (Cf. http://www.python.org/dev/peps/pep-0008/ )
À chaque fois que je lis cette page, je souffre énormément, entre autres parce que je me dis que je devrais me mettre aux espaces au lieu des TAB ... et modifier en conséquence ma config de vim, ce qui me prend à chaque fois des heures :(
Si tu envisages de développer en collaboration avec d'autres personnes, c'est indispensable à mon avis.
set tabstop=4 set expandtab
et éventuellement :retab pour mettre à jour tes fichiers existants.
Moi, pour éviter d'avoir à reconfigurer Vim sur chaque machine que j'utilise, je stocke ma conf dans un gestionnaire de code source (en l'occurence Git). Ainsi si je fais des modifs sur une machine donnée, je les envoie vers le dépot et je peux les récupérer facilement depuis les autres machines.
Laurent Claessens
Si tu envisages de développer en collaboration avec d'autres personnes, c'est indispensable à mon avis.
set tabstop=4 set expandtab
Merci, je garde ça sous le coude.
et éventuellement :retab pour mettre à jour tes fichiers existants.
Moi, pour éviter d'avoir à reconfigurer Vim sur chaque machine que j'utilise, je stocke ma conf dans un gestionnaire de code source (en l'occurence Git). Ainsi si je fais des modifs sur une machine donnée, je les envoie vers le dépot et je peux les récupérer facilement depuis les autres machines.
Moi je me ballade avec mon OS et ma /home sur mon disque externe. Donc j'ai *toutes* mes config sur *tous* les ordinateurs sur lesquels je vais :) La seule contrainte est évidement d'avoir l'autorisation au TAF à booter sur son propre OS.
Bon WE Laurent
Si tu envisages de développer en collaboration avec d'autres personnes,
c'est indispensable à mon avis.
set tabstop=4
set expandtab
Merci, je garde ça sous le coude.
et éventuellement :retab pour mettre à jour tes fichiers existants.
Moi, pour éviter d'avoir à reconfigurer Vim sur chaque machine que
j'utilise, je stocke ma conf dans un gestionnaire de code source (en
l'occurence Git). Ainsi si je fais des modifs sur une machine donnée, je
les envoie vers le dépot et je peux les récupérer facilement depuis les
autres machines.
Moi je me ballade avec mon OS et ma /home sur mon disque externe. Donc
j'ai *toutes* mes config sur *tous* les ordinateurs sur lesquels je vais :)
La seule contrainte est évidement d'avoir l'autorisation au TAF à booter
sur son propre OS.
Si tu envisages de développer en collaboration avec d'autres personnes, c'est indispensable à mon avis.
set tabstop=4 set expandtab
Merci, je garde ça sous le coude.
et éventuellement :retab pour mettre à jour tes fichiers existants.
Moi, pour éviter d'avoir à reconfigurer Vim sur chaque machine que j'utilise, je stocke ma conf dans un gestionnaire de code source (en l'occurence Git). Ainsi si je fais des modifs sur une machine donnée, je les envoie vers le dépot et je peux les récupérer facilement depuis les autres machines.
Moi je me ballade avec mon OS et ma /home sur mon disque externe. Donc j'ai *toutes* mes config sur *tous* les ordinateurs sur lesquels je vais :) La seule contrainte est évidement d'avoir l'autorisation au TAF à booter sur son propre OS.