您的位置:

详解typeerror: object() takes no p

一、什么是typeerror: object() takes no p

当我们在使用 Python 编程时,可能会遇到 typeerror: object() takes no p 这样的错误。这个错误通常出现在我们创建类的时候,当我们调用类的实例时,却发现 Object() 接收了不该有的参数 p。这个错误的原因是我们在创建类时没有正确地构造类的参数。

二、typeerror: object() takes no p 的出现原因

1、未正确构造类的参数


class MyClass():
  def __init__(self, p1):
    pass
  
my_object = MyClass()

在上述例子中,我们在创建 MyClass 类的时候,构造函数的参数是 p1。但是在实例化时我们没有传递参数,导致出现了 typeerror: object() takes no p 的错误。

2、参数传递错误


class MyClass():
  def __init__(self, p1):
    pass

my_object = MyClass('p1', 'p2')

在这个例子中,我们在实例化 MyClass 类时,传递了两个参数 'p1' 和 'p2',然而构造函数只接受一个参数。这种错误也会导致 typeerror: object() takes no p 的出现。

三、解决 typeerror: object() takes no p 的方法

1、正确构造类的参数


class MyClass():
  def __init__(self, p1):
    self.p1 = p1
  
my_object = MyClass('p1')

在这个例子中,我们正确地构造了 MyClass 类,通过给构造函数传递参数,我们可以实例化这个类并访问这个类的属性。

2、参数传递正确


class MyClass():
  def __init__(self, p1, p2):
    pass

my_object = MyClass('p1', 'p2')

在这个例子中,我们正确地传递了两个参数给 MyClass 类的构造函数,这个类可以正常实例化。

四、总结

typeerror: object() takes no p 出现的原因主要是由于类的构造函数参数没有正确定义或者参数传递错误。我们只需要正确地构造类参数或者传递正确的参数即可解决这个问题。