Topic: [risolto]Come faccio questa cosa?  (Letto 623 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline tommyb1992

  • python neanderthalensis
  • ****
  • Post: 300
  • Punti reputazione: 0
    • Mostra profilo
[risolto]Come faccio questa cosa?
« il: Agosto 15, 2018, 09:53 »
Lo so il titolo non è molto autoesplicativo...

test1.py
lol = None

def test(a=lol):
    return a


test2.py
import test1

test1.lol = "cicciopasticcio"

print(test1.test())


output:
C:\Users\Tomas\Desktop\test>python test2.py
None

=========

Vorrei assegnarla solo UNA VOLTA e poi riutilizzare la routine con il valore assegnato, possibilmente senza variabili statiche.

grazie
« Ultima modifica: Agosto 15, 2018, 11:08 da tommyb1992 »

Offline tommyb1992

  • python neanderthalensis
  • ****
  • Post: 300
  • Punti reputazione: 0
    • Mostra profilo
Re:Come faccio questa cosa?
« Risposta #1 il: Agosto 15, 2018, 11:08 »
Ok era più facile di quanto pensassi:

test2.py
import test1

test1.lol = "cicciopasticcio"

print(test1.test())


test1.py

def test():
    return lol


(common) C:\Users\Tomas\Desktop\test>python test2.py
cicciopasticcio

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re:[risolto]Come faccio questa cosa?
« Risposta #2 il: Agosto 15, 2018, 11:38 »
Sono contento che hai risolto.

Mi chiedo pero' perche' vorresti fare una cosa del genere. Usare variabili globali generalmente non e' una buona idea...

Offline tommyb1992

  • python neanderthalensis
  • ****
  • Post: 300
  • Punti reputazione: 0
    • Mostra profilo
Re:[risolto]Come faccio questa cosa?
« Risposta #3 il: Agosto 15, 2018, 12:12 »
perchè ho più funzioni che usano la stessa variabile (quindi dovrei passarla come argomento ogni volta) e sono di natura pigro...

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re:[risolto]Come faccio questa cosa?
« Risposta #4 il: Agosto 15, 2018, 14:27 »
attento che la pigrizia non diventi abitudine :) perche' poi magari dimentichi perche' non bisogna usare variabili globali ...  :ok: dopotutto, "funziona".

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.138
  • Punti reputazione: 9
    • Mostra profilo
Re:[risolto]Come faccio questa cosa?
« Risposta #5 il: Agosto 15, 2018, 19:24 »
Ok, cerchiamo però di non lasciar passare queste cose senza neppure un avvertimento, neh? Beninteso, l'OP può fare gli esperimenti che crede, ma magari in futuro finisce che qualcuno legge questo thread e pensa che sia una strada percorribile.
Quindi, a scanso di equivoci: attenzione, NON SI FA COSI'. E non è (solo) un problema di variabili globali. Entrambe le versioni sono Pessime Idee, e fanno la Cosa Sbagliata.

Non mi è davvero chiaro che cosa l'OP vorrebbe fare. Ma devo dire che queste non sono soluzioni corrispondenti a nessun problema a me noto.

Offline GlennHK

  • python sapiens sapiens
  • ******
  • Post: 1.658
  • Punti reputazione: 1
    • Mostra profilo
    • La Tana di GlennHK
Re:[risolto]Come faccio questa cosa?
« Risposta #6 il: Agosto 16, 2018, 01:32 »
classi...

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.138
  • Punti reputazione: 9
    • Mostra profilo
Re:[risolto]Come faccio questa cosa?
« Risposta #7 il: Agosto 16, 2018, 12:16 »
> classi...

mah sì forse... ma dal poco codice dell'OP non so se vedo la necessità... Boh, davvero, dipende da che cosa vuol fare l'OP in concreto. Basta che non faccia quello che ha fatto, poi le soluzioni possono essere diverse.