Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

__init__ et self.param

2 réponses
Avatar
Laurent FRANCOIS
Bonjour,

Je pense que je vais poser une question basique. Mais je débute en python.

> class Pass(object):
> def __init__(self, param):
> self.param = param
> def Test(self):
> print self.param
>
> ins = Pass('Hello')
> ins.Test()
Hello

Très bien. Mais je ne comprends pas le role de l'affectation "self.param
= param". Cela rend la variable param global? je dis cela car la
fonction Test a accès à la variable "param" sans qu'elle soit donnée en
paramêtre.

Maintenant si je n'affecte pas param à self.param. Qu'est-ce qui ce
passe pour "param".

J'image que c'est une "histoire" d'espace de nommage. J'ai du mal avec
les espaces de nommage.

/blabla
je suis en train de me former à wxPython et là parfois on
retrouve
def __init__(self,param,....):
self.param = param
et parfois il n'y pas de self.param = param pour certains paramêtres
j'essaie de comprendre à quoi cela sert et qd il faut ou ne faut pas
utiliser cette affectation.
/blabla

2 réponses

Avatar
Michel Claveau - NoSpam SVP ; merci
Bonjour !

self.param = ...



Cette ligne crée un objet, propriété de l'instance de la classe (ins
dans l'exemple cité).
En d'autres termes, plus simples mais moins exacts, cela crée une
variable attachée à ins. Ce n'est pas global, mais ins.param existe
partout où existera ins (qui, lui aussi, peut être global ou non).

Le mot 'self' désigne l'instance, durant la définition de la classe ;
et, ici, l'instance, c'est 'ins'.

Bonne journée.

Michel Claveau
Avatar
bruno.desthuilliers
On 12 juil, 07:24, Laurent FRANCOIS
wrote:
Bonjour,

Je pense que je vais poser une question basique. Mais je débute en pyth on.

> class Pass(object):
> def __init__(self, param):
> self.param = param
> def Test(self):
> print self.param

> ins = Pass('Hello')
> ins.Test()

Hello

Très bien. Mais je ne comprends pas le role de l'affectation "self.para m
= param". Cela rend la variable param global? je dis cela car la
fonction Test a accès à la variable "param" sans qu'elle soit donné e en
paramêtre.



Heu... Ya pas qu'en Python que tu débutes alors - en programmation
objet aussi. Je te recommande de commencer par un tutoriel sur la
programmation objet.

(snip)