Dure exactement 3 arguments (4)
je suis refactorisation de code afin d'ajouter l'orientation de l'objet et je suis juste le test du 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('\n')
return ips
Lors de l'instanciation de la classe ci-dessous, je suis une étrange erreur. Que de getip() prend exactement 3 arguments (4) qui, je ne sais pas comment résoudre.
for theline in f:
if "Failed password" in theline:
lineclass = Lineobject(pattern, theline)
else:
pass
self
est passé implicitement lorsque vous appelez une méthode d'instance sur une instance qui doit êtreself.ip = self.getip(pattern, line)
Vous devez vous connecter pour publier un commentaire.
Vous donner
self.getip()
quatre arguments parce que Python ajoute automatiquement dans la premièreself
argument pour les méthodes liées. L'expression:résultats dans:
qui est quatre arguments.
Ne passe pas dans
self
de nouveau:L'acte même de la recherche de la méthode sur l'exemple (via
self.getip
) lie la méthode pour gérer ce premier argument pour vous.Lors de l'appel d'une méthode d'instance, vous ne passez pas l'instance explicitement
ie.