Hallo, Het is inderdaad zo dat
MasterClass een object UserData aanmaakt, en daar bewerkingen mee uitvoert. Wat ik wel niet goed versta
is dit: > Als je die naam
namelijk hard-coded in MasterClass hebt zitten kun je > nooit meer een ander
data base object gebruiken in je MasterClass, > want dan moet je eerst
de source van MasterClass aanpassen. Ik maak helemaal in het
begin van MasterClass zulk een object aan, en wijs dat toe aan een
member-variabele van masterClass. Op deze mannier kan ik toch eenvoudig van
database object wisselen, of versta ik u verkeerd? > Wat ik nu niet begrijp
is waarom importeer je nu UserData? > Je hoeft een module
niet te importeren puur omdat je objecten gebruikt > die in die file
gedefinieerd zijn. Je bedoelt dat ik de
member-function van UserData zonder de class te initiëren kan aanroepen? Vb: userdata =
userData().getUserInfo() > Het grote voordeel in
mijn ervaring!!! van meerdere classes in 1 file > is dat uitprinten
eenvoudiger is. 1 file uitprinten is genoeg om te > weten dat > je alle dingen van een
bepaald stukje bij elkaar hebt. > Tevens is wijzigen en
dingen consistent houden eenvoudiger (ie > wijzigingen in 1 class
veroorzaakt vaak wijzigingen in meerdere andere > classes). Bij mij staan
al die classes normaal in dezelfde file, wat > erg handig edit, en > ook erg handig is bij
een SCM om consistente delta's te krijgen. Qua printen heb je zeker
gelijk. Maar ik vind het gewoon te onoverzichtelijk om alles, onderverdeeld in
"hoofdstukken", in dezelfde file te zetten. Maar dit is misschien
vanwege mijn ervaring in php: daar werd elke keer als je de class aanriep het
hele bestand geladen, en voor de bandwijdte was dit vrij lastig, daarom
splitste ik zoveel als ik kon. > ik constateer alleen
dat je een andere conventie gebruikt (van Java?) In Java doe ik het ook zoals
ik zei, gewoonweg om overzicht te houden. Er valt inderdaad wel iets
te zeggen voor jouw methode, omdat je alles terug kan vinden in dezelfde file Mvg, UnrealEd PS: staat het
oorspronkelijke bericht hier nu? Anders weet ik niet wat ik
fout deed -----Oorspronkelijk
bericht----- Van: A.T.Hofkamp [mailto:[EMAIL PROTECTED]] Verzonden: woensdag 8 maart
2006 11:40 Aan: UnrealEd;
python-nl@python.org Onderwerp: Re: [python-nl]
classes importeren uit subfolders Hallo, Mijn post bouncede zonet op
[EMAIL PROTECTED] :-(, maar de Cc naar jouw werkt blijkbaar wel. Ik stuur deze ook naar de
python-nl mailing-lijst hoewel ik verwacht dat deze ook gaat bouncen. Als je een antwoord stuurt
naar de groep zou het fijn zijn als je mijn tekst quote, zodat de andere
lezers ook nog snappen waar het over gaat. Alvast bedankt UnrealEd wrote: > Hello, > > Mijn hierarchie zit
niet verkeerd in elkaar: > In Global zitten
classes die voor heel het systeem nuttig zijn Ik ben > namelijk een
multiplayer spel aan het schrijven, waarbij in > MasterClass de grote
berekeningen worden gedaan. In UserData zitten classes > die informatie over de
user uit de database haalt. Deze classes worden > ook nog gebruikt voor
andere delen in het spel. Daarom had ik die map > Global genoemd, omdat
ze overal gebruikt worden. Misschien bestaat er een
misverstand over import, of over het gebruik van classes? MasterClass gebruikt dus een
UserData object om spullen uit een data base te trekken. Het feit dat je een apart
object gebruikt impliceert bij mij dat je niet wil dat de MasterClass weet hoe
de data base in elkaar zit (anders zou je namelijk die class bij MasterClass
voegen). Dat geldt ook voor de naam
van de UserData class zelf (althans dat verwacht ik). Als je die naam namelijk
hard-coded in MasterClass hebt zitten kun je nooit meer een ander data base
object gebruiken in je MasterClass, want dan moet je eerst de source van
MasterClass aanpassen. Met andere woorden, ik
verwacht dat een UserData object aan MasterClass gegeven wordt, die daar dan
vervolgens mee aan de gang kan gaan. Wat ik nu niet begrijp is
waarom importeer je nu UserData? Je hoeft een module niet te
importeren puur omdat je objecten gebruikt die in die file gedefinieerd zijn. > Juist omdat ik de
classes in verschillende subfolders zet, blijft het > overzichtelijk. Ik zet
gewoon 1 class per file, om het overzicht te > behouden. Ik weet dat k
uiteindelijk over de 100 classes zal zitten, en als > je dan moet gaan zoeken
in welke file wat zit, wordt dat echt gekkenwerk :) grep is your friend :-) [ het grotere probleem is
over het algemeen vinden waar een bepaalde class gebruikt wordt, niet waar
hij gedefinieerd wordt is mijn ervaring, daar heb ik nog geen oplossing voor ] Die ervaring heb ik niet,
normaal kies je een filename die een deel van het probleem afdekt, en
vervolgens duw je alle code die daar logisch gezien bij hoort in die file. (bijv 'database.py' bevat
alle data base gerelateerde classes.) Als de file dan te groot
wordt, ga je delen afsplitsen of anders reshuffelen, bijv (user_database.py, en
wereld_database.py). Dat kun je ook doen als
meerdere stukken code bepaalde delen nodig hebben. Het grote voordeel in mijn
ervaring!!! van meerdere classes in 1 file is dat uitprinten eenvoudiger is. 1
file uitprinten is genoeg om te weten dat je alle dingen van een bepaald
stukje bij elkaar hebt. Tevens is wijzigen en dingen
consistent houden eenvoudiger (ie wijzigingen in 1 class veroorzaakt vaak
wijzigingen in meerdere andere classes). Bij mij staan al die classes normaal
in dezelfde file, wat erg handig edit, en ook erg handig is bij een SCM om
consistente delta's te krijgen. PS Ik beweer niet dat jou
manier verkeerd of minder goed is, ik constateer alleen dat je een andere
conventie gebruikt (van Java?) dan ik, en ben benieuwd naar de ervaring
daarvan. Albert |
_______________________________________________ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl