Forum
>>
Principianti
>>
Le classi queste sconosciute
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da trescon ![]() |
2025-05-07 21:28:30 - Le classi queste sconosciute
|
Buonasera, per quanto io ci stia provando ... finisco sempre per litigare quando cerco di usare le classi; porto un esempio di errore che non capisco.
L'errore che mi visualizza l'interprete è: return self.func(*args) self.file_modificati.append(self.record_new) # line 118, in converti_data_promo ^^^^^^^^^^^^^^^^^^^^ File "C:\Users\AlbertoAppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 2425, in __getattr__ return getattr(self.tk, attr) ^^^^^^^^^^^^^^^^^^^^^^ AttributeError: '_tkinter.tkapp' object has no attribute 'file_modificati' Mi potete chiarire le idee ? Grazie class Conversione_date: def __init__(self): self.file_modificati = [] self.file_modificati_giornalieri = [] def converti_data_promo(self): # qui ci sono scariate riche di codice che non utilizzano le variabili "inquisite" if self.file_cambio_data.startswith("promo"): self.file_modificati_giornalieri.append(self.record_new) else: 118 self.file_modificati.append(self.record_new) ------
Alberto |
|
Scritto da nuzzopippo ![]() |
2025-05-09 16:12:25 - Re: Le classi queste sconosciute
|
Ciao @Trescon ... finalmente un post che non sia di spammer o bot ...
Il Tuo problema deriva certamente da come implementi ed utilizzi le Tue classi, impossibile dare risposte utili dato che non hai fornito praticamente nulla di valido in merito alle Tue implementazioni. Comunque, penso che il capitolo 9 del manuale Ti possa essere utile, approfondisci particolarmente i capitoli 9.2 e 9.3.1-9.3.5 e fai prove sino ad assimilare la materia. Il traceback che hai postato indica chiaramente che hai cercato di utilizzare proprietà di oggetti di classe "Conversione_date" come se tali proprietà facessero parte di widget tkinter ... le cose non funzionano così, a meno Tu non abbia creato dei sub-classamenti con classi-madre multiple, tra cui "Conversione_date", cosa che non credo. Le proprietà di un oggetto istanziato restano di proprietà dell'oggetto stesso, non di quello che lo istanzia, anche se l'oggetto è definito quale variabile di istanza del chiamente ... provo a farTi un esempio ridefinendo lo stralcio di classe da Te postato in modo che scinda una lista di stringhe sulla base del "promo" iniziale Python 3.12.3 (main, Feb 4 2025, 14:48:35) [GCC 13.3.0] on linux Type "help", "copyright", "credits" or "license()" for more information. class Conversione_date: def __init__(self): self.file_modificati = [] self.file_modificati_giornalieri = [] def converti_data_promo(self, data): # qui ci sono scariate riche di codice che non utilizzano # le variabili "inquisite" for d in data: if d.startswith("promo"): self.file_modificati_giornalieri.append(d) else: self.file_modificati.append(d) values = ['Televisore', 'lavatrice', 'promo lavatrice', 'cellulare', 'promo cellulare', 'lavastoviglie', 'piano corruta'] class A: def __init__(self): self.cvd = Conversione_date() self.cvd.converti_data_promo(values)Istanziando un oggetto di classe "A" noi non potremo riferire direttamente alle liste contenute dalle istanze a Conversione_date gest = A() gest.file_modificati_giornalieri Traceback (most recent call last): File "/usr/lib/python3.12/idlelib/run.py", line 580, in runcode exec(code, self.locals) File "<pyshell#15>", line 1, in <module> AttributeError: 'A' object has no attribute 'file_modificati_giornalieri'ma dovremo riferire alla istanza a Conversione_date memorizzata (self.cvd) gest.cvd.file_modificati_giornalieri ['promo lavatrice', 'promo cellulare'] gest.cvd.file_modificati ['Televisore', 'lavatrice', 'cellulare', 'lavastoviglie', 'piano corruta']Lo stralcio di traceback da Te proposto indica che sei ricaduto in questo tipo di problema. Spero Ti sia utile, ciao Fatti non foste a viver come bruti... |
Pagina: 1
Esegui il login per scrivere una risposta.