J'écris un programme pour trouver des adaptateurs, et j'ai créé une classe appelée 'Adapter'. Quand je passe en deux arguments IDLE me donne une erreur en disant que je suis passé en trois! Voici la trace de code et pile:Python: __init __() prend exactement 2 arguments (3 donnés)
#This is the adapter class for the adapter finder script
class Adapter:
side1 = (None,None)
side2 = (None,None)
'''The class that holds both sides of the adapter'''
def __init__((pType1,pMF1),(pType2,pMF2)):
'''Initiate the adapter.
Keyword Arguments:
pType1 -- The passed type of one side of the adapter. ex: BNC, RCA
pMF1 -- The passed gender of pType1. ex: m, f
pType2 -- The passed type of one side of the adapter. ex: BNC, RCA
pMF2 -- The passed gender of pType2. ex: m, f
'''
print 'assigining now'
side1 = (pType1,pMF1)
print side1
side2 = (pType2,pMF2)
print side2
sideX = ('rca','m')
sideY = ('bnc','f')
x = Adapter(sideX,sideY)
print x.side1
print x.side2
Erreur: Traceback (most recent call last): File "C:\Users\Cody\Documents\Code\Python\Adapter Finder\adapter.py", line 28, in <module> x = Adapter(sideX,sideY) TypeError: __init__() takes exactly 2 arguments (3 given)
Je ne comprends pas quel est le problème parce que je ne l'ai entré dans deux args! Editer: Je suis nouveau dans le langage python, même si je connais Java. J'utilise cette page comme tutoriel: http://docs.python.org/tutorial/classes.html
Votre définition de '__init__' est très fausse. Quel tutoriel utilisez-vous? Pourquoi avez-vous écrit ça? Pourquoi avez-vous omis la variable 'self'? Veuillez inclure le nom ou le lien vers le didacticiel que vous utilisez. –
Votre utilisation des expressions de tuple dans votre liste d'arguments est très Python non-idiomatique et confondrait beaucoup de personnes. Je suggère que vous ne fassiez pas cela, d'autant plus que vous les avez simplement assignés comme un tuple à quelque chose d'autre de toute façon. S'il vous plaît, n'utilisez pas de constructions Python très bizarres mais étrangement fonctionnelles, sauf si vous avez une raison vraiment extravagante. – Omnifarious
différentes personnes apprennent de différentes façons, vous pouvez trouver diveintopython.org plus approprié que docs.python.org – msw