Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 3.994 pregleda

Najnovija ↓

Could not import 07.11.2007. u 13:34 · pre 231 mesec #1
Imam paket, recimo "pkg", i u njemu module mod1 i mod2. Mod1 ima clasu koja se koristi u mod2 i obratno. Python prijavljuje gresku ako pozivam u mod1:

import mod2

...zato sto u mod2 imam liniju koja glasi "from mod1 import ...". Izgleda da sam napravio petlju u lodovanju modula.

Zanima me kako ovo da rijesim? Kako da sve sto mi treba stavim u globalni namespace, tako da je spremno za upotrebu? I kako mogu da izbjegnem da u svakom modulu u pkg pisem "from pkg.module1 import to_i_to"?
Re: Could not import 07.11.2007. u 15:16 · pre 231 mesec #2
Nisam bas najbolje razumeo tvoj problem, ali ne vidim sto toliko komlikujes. Stavi stvari za importovanje sve u jedan module pa importuj iz ova 2. Sto se drugog problema tice, ako sam razumeo trebi treba from pkg.module1 import * ( * znaci da importujes sve stvari iz tog modula)
Potpis
The earth teaches us more about ourselves than all the books. Because it resists us. Man discovers himself when he measures himself against the obstacle.
Re: Could not import 07.11.2007. u 19:53 · pre 231 mesec #3
Kako program raste, tako se stvari kompikuju, a ja pokusavam da ih drzim pod kontrolom. Znam za "import *", ali medjusobno importovanje izmedju dva modula dovodi do greske (il sam je krivo shvatio).

Ne odgovara mi da sve stavim u jednan modul, pa odatle da importujem.

Kako da neke klase, vrijednosti itd. postavim kao "public", odnosno da stalno budu spremne za upotrebu? Da li je dovoljno da u __init__.py postavim linije sa kodom "from module1 import class1 as class1" ili ima neka druga praksa?
Re: Could not import 07.11.2007. u 21:46 · pre 231 mesec #4
Ja na zalost ne znam, nikada nisam to radio jer nisam imao potrebu sa tim. Moj savet ti je da uzmes neciji tudji projekat i pogledas kako je to uradjeno. Btw, jesi li gledao python dokumentaciju? Mozda ovde ima ono sto ti treba http://www.python.org/doc/current/dist/dist.html
Potpis
The earth teaches us more about ourselves than all the books. Because it resists us. Man discovers himself when he measures himself against the obstacle.
Re: Could not import 08.11.2007. u 14:16 · pre 231 mesec #5
Citat:
mr.marvin: Kako program raste, tako se stvari kompikuju, a ja pokusavam da ih drzim pod kontrolom. Znam za "import *", ali medjusobno importovanje izmedju dva modula dovodi do greske (il sam je krivo shvatio).


Ukoliko klasama u jednom modulu pristupas u drugom modulu i obratno, odnosno ukoliko imas upravo takav problem (potrebu za medjusobnim importovanjem modula) verovatno je potrebno da izvrsis reorganizaciju svojih modula, jer se ocigledno (nepotrebno) preklapaju.

Citat:

Kako da neke klase, vrijednosti itd. postavim kao "public", odnosno da stalno budu spremne za upotrebu? Da li je dovoljno da u __init__.py postavim linije sa kodom "from module1 import class1 as class1" ili ima neka druga praksa?


Koncept public i private metoda klasa i varijabli je u Python jeziku resen kroz imena samih metoda i varijabli. Ukoliko ime metoda ili varijable u okviru klase pocinje sa "__" (double underscore) Python im ne dozvoljava pristup van same klase.

Vise o tome ovde
Potpis
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
Re: Could not import 16.11.2007. u 15:01 · pre 230 meseci #6
Najpametinije je bilo sve module malo reorganizovati, kao sto si preporucio, i sad je sve ok. Medjutim, nisam mislio na public/private osobine unitar klase, vec na same module unutar projekta, ali i to se polako sredjuje.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme