say()接受0个位置参数,但给出了2个

时间:2018-11-07 20:14:56

标签: python

我遇到了问题,我的代码无法正常工作。我想做的是让pyautogui键入我想要键入的任何内容。因此,我没有键入pyautogui.typewrite("Something"),而是尝试键入def,而不是一百次键入say("Whatever I need")。我收到的消息是这样的:

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

这是我的代码:

import pyautogui
import time
import random

def say():
    pyautogui.typewrite()

say((), 'I am smart')

顺便说一句,我不是那个^^

2 个答案:

答案 0 :(得分:0)

在调用方法时,该方法将接受与方法定义后的括号中定义的参数一样多的参数。所以:

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

在此示例中,参数称为name,并且必须始终将其传递。如果仅调用say_hello()而没有任何参数,则会出现错误。

以同样的方式,一个方法所接受的参数不能超过所定义的参数。由于say()没有参数,因此不能有参数。

say()实际写下您想要的内容的唯一方法是:

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

say("I am smart")

答案 1 :(得分:0)

您可能想要

import pyautogui
import time
import random

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

say('I am smart')

something是一个变量,用作函数say()的参数。