`Dire ()` prend des arguments de position '0' mais 2 ont été donnés

voix
-3

J'ai un problème, mon code ne fonctionne pas. Ce que j'essaie de faire est d'obtenir pyautoguitaper tout ce que je veux taper. Ainsi , au lieu de taper pyautogui.typewrite(Something)une centaine de fois, j'ai essayé de faire que defje puisse dire say(Whatever I need). Le message que je reçois est la suivante:

`say()` takes `0` positional arguments but 2 were given

Voici mon code:

import pyautogui
import time
import random

def say():
    pyautogui.typewrite()

say((), 'I am smart')

BTW, je ne veux pas dire ^^

Créé 07/11/2018 à 20:14
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

Vous avez probablement voulu

import pyautogui
import time
import random

def say(something):
    pyautogui.typewrite(something, interval=0.1)

say('I am smart')

Le somethingest une variable, en utilisant comme paramètre de la fonction say().

Créé 07/11/2018 à 20:44
source utilisateur

voix
0

Lorsqu'une méthode est appelée, elle prend autant d'arguments que définis dans les parenthèses après dans la définition de la méthode. Alors:

def say_hello(name):
   print("Hello " + name)

Dans cet exemple , est appelé l'argument nameet doit toujours être transmis. Si vous appelez simplement say_hello()sans aucun argument, vous obtiendrez une erreur.

De la même manière, une méthode ne peut pas accepter plus d' arguments que sont définis. Depuis say()n'a pas d' arguments, il peut prendre aucun argument.

La seule façon d'avoir say()fait écrire ce que vous voulez serait quelque chose comme ceci:

def say(mystring):
   pyautogui.typewrite(mystring)

say("I am smart")
Créé 07/11/2018 à 20:25
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more