Estoy escribiendo un programa para encontrar adaptadores y he creado una clase llamada 'Adaptador'. Cuando paso dos argumentos ¡IDLE me da un error al decir que pasé en tres! Aquí está el código y Seguimiento de la pila:Python: __init __() toma exactamente 2 argumentos (3 dados)
#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
error: 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)
No entiendo cuál es el problema porque sólo he entrado dos argumentos!
Editar: Soy nuevo en el lenguaje python, aunque conozco Java. estoy usando esta página a modo de tutorial: http://docs.python.org/tutorial/classes.html
Su definición de '__init__' está muy, muy mal. ¿Qué tutorial estás usando? ¿Por qué escribiste eso? ¿Por qué omitiste la variable 'self'? Por favor incluya el nombre o enlace al tutorial que está usando. –
Su uso de expresiones de tupla en su lista de argumentos es Python muy idiomático y podría confundir a muchas personas. Sugiero que no hagas eso, especialmente porque los asignas como una tupla a otra cosa de todos modos. Por favor, no uses construcciones de Python muy extrañas pero que funcionen extrañamente a menos que tengas una razón realmente escandalosamente fantástica para hacerlo. – Omnifarious
diferentes personas aprenden de diferentes maneras, puede encontrar que diveintopython.org es más adecuado que docs.python.org – msw