追溯:TypeError:此构造函数不接受任何参数

时间:2019-02-26 19:17:31

标签: python

好吧,我似乎没有提供足够的信息。因此,最终目标是基于某些子网运行ping扫描。因此,我创建了一个带有子网和pingsweep运行的文本文件,并提供了所有IP可达的输出。

Here is the pingsweep code

我收到此错误:

Traceback (most recent call last):
  File "pingsweep1.py", line 118, in <module>
    sub = subnet(line)
TypeError: this constructor takes no arguments

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

错误告诉您subnet构造函数不需要任何参数。您需要编写:

sub = subnet()

但是,看看您的子网类,我发现您写道:

class subnet:
      IP = 0
      mask = 0
      index = 0

      def __int__(self,IP):
            sel.ip = long(0)
            m = re.search(r"([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/([0-9]+)", IP, flags=0)
            ...

所以我认为这只是一个错字。您希望使用__init__(self, IP)而不是__int__(self, IP),也可能是self.ip = long(0)而不是sel.ip = long(0)

因为您写了__int__(self, IP),所以您没有创建初始化方法。因此,解释器使用的是默认构造函数,该构造函数不接受参数。之所以说“默认构造函数”,是因为您的错误消息告诉我您正在使用python2,并且这是一个旧式类,因为您没有从顶级object派生它。