缺少 1 个潜在参数
Missing 1 potential argument
这是我第一次 post 访问该网站,我正在学习编程入门在线课程,这对于入门来说相当困难。我以前没有编码经验,python 是我学习的第一门语言,所以如果我在论坛上做错了什么,请原谅我...无论如何,问题是:
所以我的问题是,如何满足函数中的参数?。例如,我有一个函数可以检查以前代码中的某些内容(我正在编写一个莎士比亚式的侮辱生成器,其中包含一些额外的内容,例如按字母顺序排序、保存、文件 I/O 等),我无法让我的 def
功能正常工作...
它一直给我一个 missing 1 potential argument numInsults
错误。
我怎样才能满足这个条件?
def checkInsultsFile(numInsults, Insults="Insults.txt"):
numInsults = number
isItAlpha = "Insults.txt".isalpha()
if isItAlpha:
return True
如果我的侮辱文本文件是按字母顺序排列的,并且 insults(numInsults)
的数量合法(在 100-10000 和一个整数) 我使用另一个名为 getNumInsults
which = numInsults
的函数确保它是合法的
数字来自之前的函数...
number = int(input("\nHow many insults do you want? \
Enter in range 100 to 10,000: "))
我希望我包含了所有的答案...我总结的问题是:我怎样才能停止收到错误?
你是如何调用这个函数的?您已将其定义为采用 1-2 个参数,但它至少需要 1 个参数 我的猜测是,在代码的其他地方,您有:
isOk = checkInsultsFile()
当你应该拥有的是:
isOk = checkInsultsFile(101)
或者,使用可选参数:
isOk = checkInsultsFile(101, "myInsults.txt")
编辑:
虽然 OP 没有说,但我相信有问题的函数实际上是 class 的一部分,在这种情况下,它的第一个参数应该是 self
。所以定义实际上应该是:
def checkInsultsFile(self, numInsults, Insults="Insults.txt"):
...
尽管您仍然会像上面那样调用该函数。
我发现这段代码有几个问题,也许你可以解决这些问题并尝试
在下面两行
def checkInsultsFile(numInsults, Insults="Insults.txt"):
numInsults = number ## Wrong: number is not known and numInsults assigned not a good idea)
出现问题 - 您将 numInsults
传递给函数并在下一行再次为其赋值。那当然不是 desired/expected。当您将 numInsults
作为参数传递时,它将在您的程序中可用。 number
也没有在任何地方定义,它是在文件的其他地方定义的吗?这是一个潜在的错误。记住——通常你不应该为传递给函数的参数赋值(在其他编程语言中,它可能是 required/useful 但这里不是)。
第二个参数有一个默认值 "Insults.txt",这在 Python 中很有用,它让您可以按以下方式调用函数 checkInsults - 所有三个都是合法的
checkInsults(10) # no value for Insults parameter - default is used
checkInsults(10, "another_insult.txt") # Insult is now set to "another_insult.txt"
然而以下是非法的
checkInsults() # Here numInsults an integer is expected to be passed and you are passing nothing
所以这应该会报错。 `期望 1 个参数得到 0 或类似的东西,但你的错误情况是我在 Python 中不常见的。
希望这有助于您入门和修复代码,并希望您自己修复错误。
这是我第一次 post 访问该网站,我正在学习编程入门在线课程,这对于入门来说相当困难。我以前没有编码经验,python 是我学习的第一门语言,所以如果我在论坛上做错了什么,请原谅我...无论如何,问题是:
所以我的问题是,如何满足函数中的参数?。例如,我有一个函数可以检查以前代码中的某些内容(我正在编写一个莎士比亚式的侮辱生成器,其中包含一些额外的内容,例如按字母顺序排序、保存、文件 I/O 等),我无法让我的 def
功能正常工作...
它一直给我一个 missing 1 potential argument numInsults
错误。
我怎样才能满足这个条件?
def checkInsultsFile(numInsults, Insults="Insults.txt"):
numInsults = number
isItAlpha = "Insults.txt".isalpha()
if isItAlpha:
return True
如果我的侮辱文本文件是按字母顺序排列的,并且 insults(numInsults)
的数量合法(在 100-10000 和一个整数) 我使用另一个名为 getNumInsults
which = numInsults
数字来自之前的函数...
number = int(input("\nHow many insults do you want? \
Enter in range 100 to 10,000: "))
我希望我包含了所有的答案...我总结的问题是:我怎样才能停止收到错误?
你是如何调用这个函数的?您已将其定义为采用 1-2 个参数,但它至少需要 1 个参数 我的猜测是,在代码的其他地方,您有:
isOk = checkInsultsFile()
当你应该拥有的是:
isOk = checkInsultsFile(101)
或者,使用可选参数:
isOk = checkInsultsFile(101, "myInsults.txt")
编辑:
虽然 OP 没有说,但我相信有问题的函数实际上是 class 的一部分,在这种情况下,它的第一个参数应该是 self
。所以定义实际上应该是:
def checkInsultsFile(self, numInsults, Insults="Insults.txt"):
...
尽管您仍然会像上面那样调用该函数。
我发现这段代码有几个问题,也许你可以解决这些问题并尝试
在下面两行
def checkInsultsFile(numInsults, Insults="Insults.txt"):
numInsults = number ## Wrong: number is not known and numInsults assigned not a good idea)
出现问题 - 您将 numInsults
传递给函数并在下一行再次为其赋值。那当然不是 desired/expected。当您将 numInsults
作为参数传递时,它将在您的程序中可用。 number
也没有在任何地方定义,它是在文件的其他地方定义的吗?这是一个潜在的错误。记住——通常你不应该为传递给函数的参数赋值(在其他编程语言中,它可能是 required/useful 但这里不是)。
第二个参数有一个默认值 "Insults.txt",这在 Python 中很有用,它让您可以按以下方式调用函数 checkInsults - 所有三个都是合法的
checkInsults(10) # no value for Insults parameter - default is used
checkInsults(10, "another_insult.txt") # Insult is now set to "another_insult.txt"
然而以下是非法的
checkInsults() # Here numInsults an integer is expected to be passed and you are passing nothing
所以这应该会报错。 `期望 1 个参数得到 0 或类似的东西,但你的错误情况是我在 Python 中不常见的。
希望这有助于您入门和修复代码,并希望您自己修复错误。