正好需要 3 个参数(给定 4 个)

Takes exactly 3 arguments (4 given)(正好需要 3 个参数(给定 4 个))
本文介绍了正好需要 3 个参数(给定 4 个)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在重构代码以添加面向对象,我只是在测试代码.

i'm refactoring code in order to add object orientation and am just testing the code.

pattern = r"((([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])[ ([]?(.|dot)[ )]]?){3}([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5]))"

class Lineobject(object):

        def __init__(self, pattern, line):
            self.ip = self.getip(self, pattern, line)

        def getip (self, pattern, line):
                for match in re.findall(pattern, line):
                    results = ''
                    ips = match[0]
                    usergeneratedblacklist.write(ips)
                    usergeneratedblacklist.write('
')
                    return ips

在实例化下面的类时,我遇到了一个奇怪的错误.getip() 正好需要 3 个参数(给定 4 个),我不知道如何解决.

When instantiating the class below I am getting an odd error. That of getip() takes exactly 3 arguments (4 given) which i do not know how to resolve.

for theline in f:

    if "Failed password" in theline:

        lineclass = Lineobject(pattern, theline)

    else:
        pass

推荐答案

你给 self.getip() 四个参数,因为 Python 会自动添加第一个 self 参数绑定方法.表达式:

You are giving self.getip() four arguments because Python automatically adds in first self argument for bound methods. The expression:

self.getip(self, pattern, line)

结果:

getip(self, self, pattern, line)

这是四个个参数.

不要再传入self:

self.ip = self.getip(pattern, line)

在实例上查找方法的行为(通过self.getip)绑定为您处理第一个参数的方法.

The very act of looking up the method on the instance (via self.getip) binds the method to handle that first argument for you.

这篇关于正好需要 3 个参数(给定 4 个)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)