Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    146

    [Python] Problema oggetti

    Ho provato a creare 2 classi di oggetti stupide.
    Ogni classe è su un file diverso con lo stesso nome della classe.
    Il problema è che quando faccio partire il prog mi da un errore sul costruttore.
    L'errore persiste in tutti gli oggetti.
    Questo è il codice:
    codice:
    class A():
        def __init__(self):
            self.__x
        
        def set(self, x):
            self.__x = x
            
        def get(self):
            return self.__x
    ------------------------------------------------
    from A import A
    
    class M():
        def __init__(self, a):
            self.__a = a
        
        def get(self):
            return self.__a.get()
        
        def set(self, x):
            self.__a.set(x)
    -----------------------------------------------
    from A import A
    from M import M
    
    a = A(100)
    m = M(a)
    print m.get()
    L'errore è questo:
    Traceback (most recent call last):
    File "C:\Users\Davide\workspace\File Transfer Protocol\src\prova\PPPPP.py", line 4, in <module>
    a = A(100)
    TypeError: __init__() takes exactly 1 argument (2 given)

    Come posso risolvere??
    Io temo sia nel fatto che devo specificare i parametri che passo nel costruttore. Ma sono tutte variabili dense quindi non dovrebbero esserci problemi.

  2. #2
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    mi sono sbagliato l'errore sta nel costruttore di a tu passi un parametro ma in realtà nella definizione nn c'è
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    146
    Ho provato a togliere anche le parentesi dalla class. Del tipo "class A" invece di "class A()". Ma non cambia niente l'errore persiste ed è sempre lo stesso.

  4. #4
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da dades
    Ho provato a togliere anche le parentesi dalla class. Del tipo "class A" invece di "class A()". Ma non cambia niente l'errore persiste ed è sempre lo stesso.
    mi son corretto leggi sopra
    codice:
    def A(self,x):
       self.__x=x
    così dovrebbe andare
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    146
    Ho provato a fare come hai detto tu ma va sempre in errore.
    Ho anche provato a togliere __init(...)__ lasciando il tuo metodo come costruttore ma dice che ci vuole init.

  6. #6
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da dades
    Ho provato a fare come hai detto tu ma va sempre in errore.
    Ho anche provato a togliere __init(...)__ lasciando il tuo metodo come costruttore ma dice che ci vuole init.
    no oggi sto fuso XD
    codice:
    def __init__(self,x):
       self.__x=x
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  7. #7
    codice:
    TypeError: __init__() takes exactly 1 argument (2 given)
    Questo significa che hai definito un costruttore che non accetta argomenti, come questo:

    codice:
    def __init__(self):
    ...e tu, in fase di instanziazione, gliene passi uno:

    codice:
    a = A(100)

    Se vuoi che il costruttore accetti un argomento devi definirlo in questo modo:

    codice:
    def __init__(self, argomento):
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    146
    E' vero non me ne ero accorto!!
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.