python-3.x 缺少1个必需的位置参数“element”

pgx2nnw8  于 2023-06-07  发布在  Python
关注(0)|答案(1)|浏览(289)

Type error: __init__() missing 1 required positional argument: 'element'
代码是从Github上得到的。我想跑,但它不起作用。你能帮忙吗

from equation import Equation

from time import sleep

def run_balance():

    """

    Runs the chemical equation balance algorithm

    """

    print('=================================================')

    print('Insert chemical equation with elements in\nparentheses followed by the number of atoms:')

    print('Example: (H)2 + (O)2 = (H)2(O)1')

    user_input = input('>>> ')
    
    try:

        equation = Equation(user_input)

        print('Balanced equation: ' + equation.balance())

        sleep(3)
    
        run_balance()
    
    except IndexError:

        print('Invalid input...')
    
        sleep(3)
    
        run_balance()
    
run_balance()
u5i3ibmn

u5i3ibmn1#

看起来你缺少了Equation的一个参数。
查看Equation的文档或源代码。如果您正在以交互方式运行Python,则可以键入help(Equation)并查找__init__来开始。
下面是如何从收到的错误消息中推断出这一点:
TypeError: __init__() missing 1 required positional argument: 'element'表示
1.名为__init__的函数
1.被“召唤”(执行),但
1.它得到的参数比它应该得到的少一(1)个(如果你看一下函数定义,它应该得到的参数被称为element,如果这有帮助的话)。
例如,也许它应该用两个参数调用,但只得到了一个参数,或者应该用三个参数调用,但只得到了两个参数,等等。在正确的Python代码中,错误的参数数量 always 会导致具有该消息形状的TypeError,并且来自Python本身检查参数的数量。
1.[这个细节在本例中无关紧要]“位置参数”意味着在函数的定义中,它不是一个只有关键字的参数。
在大多数情况下,这个错误会告诉你问题是什么,但是这个错误在两个方面是不好的:

  • 它不会明确告诉你在构造类时发生了什么
  • 它没有告诉你是什么课。

我们必须知道__init__是一个特殊的函数名,Python类使用它来 * 初始化它们自己。这通常被称为“构造函数”,虽然in Python the applicability of that name is a bit trickier
一旦知道__init__是类的“构造函数”/初始化器,就可以开始查找代码中构造类的位置。这并不总是显而易见的,但我们有另一个线索来帮助:
按照惯例,只有类被命名为LikeThis-每个单词的第一个字母大写,单词之间没有分隔。代码中唯一具有该名称的是Equation。错误出现在 * 你的 * 代码中的可能性更高,而不是其他人已经测试和发布的代码,所以 * 很可能 * Equation(user_input)调用需要多一个参数。
很难得到比这更精确的信息,因为你没有分享足够的信息-你从哪里得到的equation模块?在GitHub上(link!)你得到这个代码了吗?这个错误是否有任何其他信息,比如行号或“回溯”(一串看起来像代码的行)?
P.S.你写的是“Type error”而不是实际的标准名称TypeError,这警告我你可能会手动重写错误,但没有足够注意精确的细节。

相关问题