Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/09/2008, à 22:17

Pyov.

Python, options de méthodes

Coucou,
Je débute en Python et je n'arrive pas à trouver les options disponibles pour les méthodes des objets.
En particulier, l'aide de Python ne semble pas donner tous les paramètres.
Pour l'objet Canvas, le __init__(self, master=None, cnf={}, **kw).
Ou peut-on trouver les paramètres "cnf={}" et le "**kw"??? Y a-t-il moyen de les parcourir???

Existe-t-il un moyen ou une interface permettant de voir ces paramètres???

Merci d'avance...

Hors ligne

#2 Le 02/09/2008, à 22:53

reeth_paslog

Re : Python, options de méthodes

Je pense (sans en être sur) que ce sont des objets tuple et dictionnary avec keyword+value. Une façon de faire est de faire :

def arg_tuple(*args):
    resultat = 0
    for nombre in args:
        resultat += nombre
    return resultat
print arg_tuple((1, 2, 3))

et

def arg_dict(**kargs):
    return kargs
a = {'u':12, 1:'a'}
print arg_dict(**a)

Je ne sais pas si j'ai répondu à ta question mais j'espère que cela t'aidera

#3 Le 02/09/2008, à 23:13

Pyov.

Re : Python, options de méthodes

Coucou,
C'est sympa, j'essaye..

Je ne sais pas trop...
Pour la première, l'objet tuple, le type int n'est pas compatible avec le type tuple!!!
"TypeError: unsupported operand type(s) for +=: 'int' and 'tuple'"
Le seul type qui semble fonctionner est la liste, mais alors le retour est: [1, 2, 3]
(Je ne connais pas l'objet tuple)...
Pour la deuxième, la sortie est : TypeError: arg_dict() keywords must be strings

Je vais essayer de creuser...

Hors ligne

#4 Le 02/09/2008, à 23:55

reeth_paslog

Re : Python, options de méthodes

Désolé, je suis un peu fatigué, je n'ai pas fais attention hmm

Les sorties d'erreur python sont assez explicites.

en fait pour les tuples il faut mettre :

print arg_tuple(12, 13, 14) #pas de parenthèses ici, ce que l'on envoie est de transformé en un tuple d'objets

#si on veux envoyer un tuple directement, il faut ensuite déconcaténer les éléments:

def somme(a, b, c):
    return a+b+c

a=(11, 12, 13)
print somme(*a)

Pour le reste, il suffit de remplacer le 1 par '1' par exemple

#5 Le 03/09/2008, à 00:32

Pyov.

Re : Python, options de méthodes

Coucou,
Oups, je n'arrive pas à suivre...
Voila le scripte...

# Importation de la bibliothèque Tkinter.
from Tkinter import *


def arg_tuple(*args):
	resultat = 0
	for nombre in args:
		resultat += nombre
	return resultat
#print arg_tuple((1, 2, 3))

def somme(a, b, c):
	return a+b+c

a=(11, 12, 13)
print somme(*a)
print arg_tuple(12, 13, 14) #pas de parenthèses ici, ce que l'on envoie est de transformé en un tuple d'objets


def arg_dict(**kargs):
	return kargs
a = {'u':12, 1:'a'}
print arg_dict(**a)

Le retour, est :

36
39
Traceback (most recent call last):
  File "tuple01.py", line 26, in <module>
    print arg_dict(**a)
TypeError: arg_dict() keywords must be strings

Je n'arrive pas a voir comment, on peut sortir les paramètres d'un objet comme cela...
(mais je ne suis vraiment pas doué!!! smile

Hors ligne

#6 Le 03/09/2008, à 07:41

aleph

Re : Python, options de méthodes

> ...mais je ne suis vraiment pas doué!!!

Mais non... Ton problème est que tu ne veux pas commencer par apprendre Python.

>>> 
>>> def p(o):
        print o, type(o)
        
>>> def z(*args):
        map(p, args)
        
>>> z('b', 999, 3.1416, unicode('éléphant', 'iso-8859-1'), (12,), {0: 'eins', 1: 'zwei'}, range(3))
b <type 'str'>
999 <type 'int'>
3.1416 <type 'float'>
éléphant <type 'unicode'>
(12,) <type 'tuple'>
{0: 'eins', 1: 'zwei'} <type 'dict'>
[0, 1, 2] <type 'list'>
>>> 
>>> print map.__doc__
map(function, sequence[, sequence, ...]) -> list

Return a list of the results of applying the function to the items of
the argument sequence(s).  If more than one sequence is given, the
function is called with an argument list consisting of the corresponding
item of each sequence, substituting None for missing values when not all
sequences have the same length.  If the function is None, return a list of
the items of the sequence (or a list of tuples if more than one sequence).
>>>

#7 Le 03/09/2008, à 08:11

g_barthe

Re : Python, options de méthodes

>aleph : Plusieurs fois aussi tu m'as répondu que je devais apprendre python il me semble. Mais quand on débute à part l'ouvrage de Swinnen pour la partie pure python et celui tout en anglais pour la partie wxpython il n'y a pas grand chose.

Après, on fait avec les forums et toutes les autres infos que l'on trouve sur le net mais ce n'est pas forcément la rolls de l'apprentissage.

Je sais pas si tu peux conseiller autre chose ?

Mais tes conseils sont les bienvenus.


Mon forum perso sur le génie climatique http://le-genie-climatique.positifforum.com/
Le forum des travaux manuels : http://pausebroderie.fr/

Hors ligne

#8 Le 03/09/2008, à 13:39

Pyov.

Re : Python, options de méthodes

"Mais non... Ton problème est que tu ne veux pas commencer par apprendre Python."

aleph: apprend à lire, les messages. Si tu ne comprends pas, relis et/ou pose des questions (si la demande n'est pas claire) au lieu d'être suffisant, pédant, désobligeant  et totalement inutile...

g_barthe: exact...

Je cherche de la doc ou des moyens d'en obtenir (Si cela te chiffonne, passe ton chemin), donnant pour les objets, fonctions, méthodes et paramètres, des explications...

Merci d'avance

Dernière modification par Pyov. (Le 03/09/2008, à 13:40)

Hors ligne

#9 Le 03/09/2008, à 15:25

aleph

Re : Python, options de méthodes

> Pyov.

> aleph: apprend à lire,...

Avec dix années d'expérience Python et je ne sais plus combien d'années de contribution à un projet multi-plateforme pour Python, je pense que non seulement je lis et comprends très bien vos questions mais j'arrive aussi à extraire la substantifique moelle de ce que vous n'arrivez pas à exprimer correctement.

Le problème est *toujours* le même, beaucoup d'entre vous, buttez sur les bases que vous ne voulez pas apprendre ou négligez. Il serait inutile de balancer stupidement - je le pense - l'explication d'un constructeur d'un objet Tkinter si l'on est d'abord pas capable de parcourir les arguments d'une fonction (voir mon exemple).

> Je cherche de la doc ou des moyens...

J'espère ne pas paraître trop suffisant en te signalant qu'il y un site nommé www.python.org avec un menu à gauche contenant le mot DOCUMENTATION sur la page d'accueil.

Et si, comme la plupart, tu veux commencer à écrire des applications graphiques sans maîtriser les bases - ce que je ne conseille pas -, taper tkinter sur Google te permettra de butiner sur les premiers des quelques 800000 liens proposés.

Il est évident que ne pas connaître les bases  (voir le lien donné à g_barthe ci-dessous), ne permettra pas de taper la commande ci-dessous dans un interpréteur interactif.

>>> help(Tkinter)
Help on module Tkinter:

NAME
    Tkinter - Wrapper functions for Tcl/Tk.

FILE
    c:\python25\lib\lib-tk\tkinter.py

DESCRIPTION
    Tkinter provides classes which allow the display, positioning and
    control of widgets. Toplevel widgets are Tk and Toplevel. Other

    bla bla bla

----

> g_barthe

> Je sais pas si tu peux conseiller autre chose ?

http://forum.ubuntu-fr.org/viewtopic.php?id=138212&p=4 msg 89

Autrement, je sèche.

C'est tout.

#10 Le 03/09/2008, à 16:03

bipede

Re : Python, options de méthodes

Pyov. a écrit :

aleph: apprend à lire, les messages. Si tu ne comprends pas, relis et/ou pose des questions (si la demande n'est pas claire) au lieu d'être suffisant, pédant, désobligeant  et totalement inutile...

J'ai moi aussi eu ce type de réaction en son temps vis à vis d'aleph.

Mais même si sa façon de répondre sèchement à une problématique par des renvois aux fondamentaux peut t'agacer, je te conseille de lire très attentivement ce qu'il écrit, et surtout de bien chercher à comprendre ce qui te parait ésotérique dans ce qu'il explique car il s'agit bien souvent de données fondamentales pour pouvoir coder efficacement en python.

aleph m'a fait progresser par ses quelques messages sur ce forum bien plus vite que par toutes mes lectures antérieures. Mais pour cela il m'a fallu accepter son côté rigide de professeur de maths helvétique (il travaille encore sous win 2000, tu te rends compte ! smile) ...


Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.

Mon site: Les contributions du bipède

Hors ligne

#11 Le 03/09/2008, à 17:01

Pyov.

Re : Python, options de méthodes

aleph: tu as de l'expérience en Python... Oui??? et alors??? Tes présupposés ne m'intéressent pas.
Par contre me dire ce que signifient, dans l'aide en ligne de Python, "cnf={}" et "**kw" serait constructif...
En ce qui concerne le site, il ne répond pas mon attente...
Je vais lire la discussion...

Hors ligne

#12 Le 03/09/2008, à 17:18

Jean-Julien

Re : Python, options de méthodes

C'est indiscutable !!!!!
Aleph m'a également fait progresser !
Je le salue en passant.
smile

Dernière modification par Jean-Julien (Le 03/09/2008, à 17:18)

Hors ligne