Re: [python-nl] PUN Meeting: ma 18/12?
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 SPE Stani's Python Editor wrote: > Al bij al reeds is 18 man een grote opkomst, meer kan altijd. Het > aantal plaatsen is onbeperkt. En het aantal parkeerplaatsen? Ik zal ook proberen van de partij te zijn. Overigens ben ik bang dat het heel veel drank wordt en dat je zelf voor heel veel snack moet zorgen. Is er geen betere verdeling van de belasting? Rob - -- Rob W.W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob/ -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFdbxiH7J/Cv8rb3QRAlpvAJ41UevMgOwF7w3ANF3TTZp5xCcK3QCfZcjY HB1lEPfjK8D96xdstVXtnY4= =NIiT -END PGP SIGNATURE- ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] qt4-designer
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Wichert Akkerman wrote: > frankje wrote: >> hallo, >> >> Ik ben net begonnen met qt4-designer en python, en bij het volgende >> oefenprogje van de site: http://www.rkblog.rk.edu.pl/w/p/introduction-pyqt4/ >> krijg ik bij het runnen de volgende fout: >> >> [EMAIL PROTECTED]:~/python$ python test.py >> Traceback (most recent call last): >> File "test.py", line 4, in >> from test_ui import Ui_Form >> File "/home/frank/python/test_ui.py", line 1 >> >> ^ >> SyntaxError: invalid syntax >> [EMAIL PROTECTED]:~/python$ >> >> >> Wat doe ik verkeerd? > > Dat is een XML file, geen python file. Dan zou hij .ui moeten heten, en kan "pyuic" worden gebruikt om deze om te zetten in een echte .py file. Rob - -- Rob W.W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob/ -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGvs2oH7J/Cv8rb3QRAj6QAKCgIP1gg5GFnOuZtRrRZ2Y2GM4W2QCbBTNd 6/VZqi0kBIefv4QzCLW2LLE= =D2Xl -END PGP SIGNATURE- ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] Aftrekken van lists...
Andre, De manier waarop jij een list gebruiken wilt lijkt meer op een set. Probeer het eens met sets te doen! amigo2[128]% python Python 2.4.4 (#2, Jan 3 2008, 13:36:28) [GCC 4.2.3 20071123 (prerelease) (Debian 4.2.2-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> set((1,2,3))-set((1,)) set([2, 3]) >>> Rob Op 01-03-08 heeft Andre van der Vlies<[EMAIL PROTECTED]> het volgende geschreven: > > Hoi, > Is er geen '-' (__sub__) operator voor lists?? > > Je kan wel twee lists optellen, maar niet aftrekken? > > Bijv. > foo = ["bla", "blie", "blo", "blub"] > bar = ["blie", "blub"] > > foo + bar = ["bla", "blie", "blo", "blub", "blie", "blub"] > > foo - bar = TypeError: unsupported operand type(s) for -: 'list' and 'list' > > Ik doe nu zoiets als: > result = [ i for i in foo if i not in bar ] > result = ["bla", "blo"] > > > Wat ikzelf nogal cryptisch vindt... > > Iets voor een PEP? Of is dat overdreven? > > > -- >Andre van der Vlies <[EMAIL PROTECTED]> >Certifiable Linux/UNIX engineer (CLUE) >Homepage: http://vandervlies.xs4all.nl/~andre > Key fingerprint = 397C 7479 67DB 9306 23DC B423 7B58 CD5A 6EFF 5CF8 > -- > "Programming isn't a craft, it's an art." > () ascii ribbon campaign - against html e-mail > /\- against microsoft attachments > ^[^#] > > -- > > ___ > Python-nl mailing list > Python-nl@python.org > http://mail.python.org/mailman/listinfo/python-nl > -- Rob W. W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
[python-nl] Mijn foto's van de PUN bijeenkomst in Rotterdam
Voor degenen die donderdagavond de zeven lezingen hebben bijgewoond: mijn foto's staan op: http://rwwh.smugmug.com/gallery/6668342_Uh9b2#425771102_t2LQw Rob -- Rob W. W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] grote getallen met grote precisie
Nee, de beste optie is om het niet met informatica maar met wiskundige algebra op te lossen. Het algoritme zo kiezen dat je een grotere nauwkeurigheid intrinsiek behoudt. In plaats van c**2-b**2 moet je dan bijvoorbeeld (c-b)*(c+b) berekenen; ontzettend veel makkelijker. Rob Op 4 mei 2009 13:38 heeft Martijn Faassen het volgende geschreven: > Hoi, > > 2009/5/4 Robert-Reinder Nederhoed : >> Is er een float-alternatief die een zekere precisie behoudt? > > http://docs.python.org/library/fractions.html > > http://docs.python.org/library/decimal.html > > Het lijkt me dat fractions het beste bij een wiskundig probleem als deze > passen. > > Groeten, > > Martijn > ___ > Python-nl mailing list > Python-nl@python.org > http://mail.python.org/mailman/listinfo/python-nl > -- Rob W. W. Hooft || r...@hooft.net || http://hooft.net/rob ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] grote getallen met grote precisie
> Overigens heeft numpy nog een float128 type, maar ook daar zul je vinden dat a = numpy.float128(1e22+1) b = numpy.float128(1e22) a == b > True Niet valsspelen, je moet de optelling natuurlijk wel in float128 doen en niet in Python float (64). 64 bit floats met 53 bit mantissa zijn voldoende voor 17 cijfers. 128 bits moet dus zeker meer dan 30 cijfers zijn. Rob -- Rob W. W. Hooft || r...@hooft.net || http://hooft.net/rob ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] grote getallen met grote precisie
Op 4 mei 2009 20:35 heeft Robert-Reinder Nederhoed het volgende geschreven: > Voor de komma, achter de komma is oninteressant voor mijn functie. Ik > begin met hele grote integers, voer daar bewerkingen op uit en wil dan > terugrekenen. Leuk. Kun je vertellen waar je integers vandaan komen, en wat voor soort berekening je erop los laat? Gaat het om de getaltheorie? Of zijn het toch getallen die te maken hebben met zaken buiten de computer? Ik ken een ruime hoeveelheid mensen die denken dat ze in hoge precisie moeten rekenen, maar slechts weinigen die er ook werkelijk zinvolle dingen mee doen Ik hoor dus graag over nieuwe toepassingen van hoge-precisieberekeningen. Rob -- Rob W. W. Hooft || r...@hooft.net || http://hooft.net/rob ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] Venster over een lijst schuiven
Op 17 oktober 2010 16:37 heeft Geert Stappers het volgende geschreven: > Op 20101017 om 15:12 schreef Thomas Miedema: >> 2010/10/17 Wouter van Heyst >> > On Sun, Oct 17, 2010 at 14:41:38 +0200, Geert Stappers wrote: >> > > Op 20101017 om 13:35 schreef Dirkjan Ochtman: >> > > > 2010/10/17 Geert Stappers : >> > > > > Misschien zit het al in Python en weet ik niet hoe het heet. >> > > > > >> > > > > Wat is de Python naam van "breed venster over lijst schuiven"? >> > > > >> > > > itertools! >> > > > >> > > > http://docs.python.org/library/itertools.html >> > > >> > > Wie wil er wat meer over vertellen? >> > >> > De voorbeelden in de documentatie herbergen een sliding window >> > implementatie, die kan je zo overnemen? > > Nou, ik denk dat de documentie voorbeelden verbergt ;-) > Althans, het voorbeeld met 'take' krijg ik niet aan de praat. > > De discussie heeft me ondertussen wel keywords opgeleverd > die ik aan Google kon voeren. > > python sliding window iterator > > En nu heb ik het warme gevoel > dat ik niet alleen was met mijn probleem :-) > >> for i in range(len(lijst) - 3): >> print lijst[i:i+3] > > > Niet zo Pythontic als ik wilde, maar wel waar ik mee verder ga. En zo? class Window(object): def __init__(self, n): self.n = n def __call__(self, list): ret = [] for i in list: if len(ret) == self.n: yield ret ret = ret[1:] ret.append(i) if len(ret) == self.n: yield ret lijst = [1, 2, 3, 3, 4, 10 , 3 ,2, 2, 1] w=Window(3) for three in w(lijst): print three -- Rob W. W. Hooft || r...@hooft.net || http://hooft.net/rob ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] Venster over een lijst schuiven
2010/10/17 Dirkjan Ochtman : > 2010/10/17 Rob Hooft : >> En zo? >> >> class Window(object): >> def __init__(self, n): >> self.n = n >> >> def __call__(self, list): >> ret = [] >> for i in list: >> if len(ret) == self.n: >> yield ret >> ret = ret[1:] >> ret.append(i) >> if len(ret) == self.n: >> yield ret >> >> lijst = [1, 2, 3, 3, 4, 10 , 3 ,2, 2, 1] >> >> w=Window(3) >> for three in w(lijst): >> print three > > Waarom gebruik je hier een class? Je kan die hele __call__() gewoon > als functie schrijven. Dat vind ik niet pythonic. De grootte van het window instellen is een andere functie dan het itereren, en dat wil ik dus scheiden. Zie je een probleem met het gebruiken van een class? Rob -- Rob W. W. Hooft || r...@hooft.net || http://hooft.net/rob ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] lambda rewrite question
2011/6/29 Floris van Manen : > For those of you who know everything about the basic python syntax & > semantics ... > I get stuck in a simple context issue (i think) > > > this version works, it return the stored float value > > def rewrite( d ): > for key in d: > for k in d[key]['next']: > c = float(d[key]['next'][k]['prob']) > d[key]['next'][k]['prob'] = c > return d > > > > this doesn't > if i call the function it will return a (random?) identical value for all > stored lambda functions. > > def rewrite( d ): > for key in d: > for k in d[key]['next']: > c = float(d[key]['next'][k]['prob']) > d[key]['next'][k]['prob'] = lambda : c > return d > > > There is most likely a reason to it. > Can someone explain me what that reason is ? The latter function will set all values to the same function, returning the value of "c". So, they will all report the last value of "c". Your lambda is almost the same as defining the function elsewhere: def rewrite( d ): def utility(): return c for key in d: for k in d[key]['next']: c = float(d[key]['next'][k]['prob']) d[key]['next'][k]['prob'] = utility return d Rob -- Rob W. W. Hooft || r...@hooft.net || http://hooft.net/rob ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] Security: lijst met veelgebruikte Nederlandse wachtwoorden gezocht
Niels, Als we het toch over password generators hebben kijk dan ook eens naar http://world.std.com/~reinhold/diceware.html 1Password is ook voor mij de oplossing. Rob Op 8 oktober 2013 15:38 schreef Niels Bom : > Een andere approach die mensen goed gedraag aanleert is volgens mij door > die XKCD techniek voor te schotelen: > > """ > Kies 4 ongerelateerde willekeurige woorden met een totale lengte van meer > dan 12 karakters. > Plak die woorden met streepjes aan elkaar vast. Dan heb je een veilig > wachtwoord. > > Voorbeeld: correct, paard, batterij, stapel wordt > "correct-paard-batterij-stapel" > """ > > Hoeveel mensen dat dan daadwerkelijk doen is ook maar weer de vraag. > En het "er moet minstens één speciaal karakter in" of "er moet minstens > één cijfer in" is ook een beetje halve oplossing omdat je dan inderdaad > XKCD wachtwoorden die veilig zijn afkeurt. > > Ik vind het zelf overigens bloed irritant als sites of software password > lengtes 1) beperken of 2) stilletjes afkappen, als ik 50 karakters random > garbage wil gebruiken (bedankt 1Password!) dan moet dat toch gewoon kunnen? > > Maar goed: ik heb een aantal goeie ideëen gehoord, ik ga er wat moois van > proberen te maken. > > Thanks! > > > > 2013/10/8 Maurits van Rees > >> >> Op 8 okt. 2013, om 14:09 heeft Reinout van Rees >> het volgende geschreven: >> >> > On 07-10-13 16:20, Niels Bom wrote: >> >> Ik wil de wachtwoordsterkte van Nederlandse users weergeven op het >> >> moment dat ze het wachtwoord voor het eerst invoeren of veranderen. >> >> Later wil ik ze misschien dwingen een voldoende sterk wachtwoord te >> >> gebruiken. >> > >> > Sterkte-suggestie is prima. Kijk wel uit met het afdwingen van een >> bepaald soort wachtwoord. >> >> En zorg dat correct-horse-battery-staple niet afgewezen wordt omdat het >> te lang is en niet in je databaseveld past. >> Zie http://xkcd.com/936/ >> >> Zucht. En zie http://correcthorsebatterystaple.net :-) >> >> Maurits van Rees >> >> ___ >> Python-nl mailing list >> Python-nl@python.org >> https://mail.python.org/mailman/listinfo/python-nl >> > > > ___ > Python-nl mailing list > Python-nl@python.org > https://mail.python.org/mailman/listinfo/python-nl > > -- Rob W. W. Hooft || r...@hooft.net || http://hooft.net/rob || @rwwh ___ Python-nl mailing list Python-nl@python.org https://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] Coworking space in Leiden or nearby
http://www.seats2meet.com/locations 2013/10/11 Winkel, Alex van > Same here for Eindhoven… > > ** ** > > Regards, > > ** ** > > Alex > > ** ** > > *Van:* Python-nl [mailto:python-nl-bounces+wial=roceindhoven...@python.org] > *Namens *Stefano Masini > *Verzonden:* vrijdag 11 oktober 2013 14:26 > *Aan:* python-nl@python.org > *Onderwerp:* [python-nl] Coworking space in Leiden or nearby > > ** ** > > Hi guys, > > ** ** > > I'd love to share a space with other coders, maybe once a week, or > something like that. > > Getting to know each other, nerding out around a coffee, finding business > opportunities. Not necessarily to find work, but also the other way around > actually, to find collaborators. > > ** ** > > Do you know of places like this around Leiden? > > If not, are you interested in maybe starting one? > > ** ** > > Cheers > > Stefano > > ** ** > > ___ > Python-nl mailing list > Python-nl@python.org > https://mail.python.org/mailman/listinfo/python-nl > > -- Rob W. W. Hooft || r...@hooft.net || http://hooft.net/rob || @rwwh ___ Python-nl mailing list Python-nl@python.org https://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] afsluiten programma
Marc, Je schrijft dat het programma moet termineren op een escape, maar ik zie daarvoor geen code. De while loop wordt nooit afgebroken. Ik ken pygame niet, maar het lijkt me genoeg om de pygame.quit() call binnen het If-statement te zetten, of als netter alternatief daar een "break" toe te voegen. Rob On Tuesday, August 12, 2014, Marc Stevens wrote: > Hoi met marc, > > Om maar meteen met de deur in huis te vallen: ik ben een beetje Pietje > Precies. > Ik heb allelei experimentele programma's gescheven en ben nog lerende. > ik probeer van allerlij voorbeelden te leren. Maar er is een ding dat bij > mij > nooit mooi werkt, > en dat is het afsluiten van een lopend programma. ik heb nog nooit een > programma > in gezien waar het afsluiten van het programma fatsoenlijk werkt. Vandaar > Pietje > Precies. > Ik had tot op heden nog hoop omdat ik me nog iets kon herinnneren van een > programma dat werkte met 'keys'. Het programma zou moeten reageren op > invoer > vanaf het toetsenbord. > Dat doet hij ook, hij reageerd op de cursor toetsen en verplaatst een > sprite > over het scherm. > Alleen zou hij moeten afsluiten bij het drukken op de escape-toets. Maar > helaas > dat werkt dus ook niet. > > Hieronder het voorbeeld, misschien dat je het kunt corrigeren of iets > toevoegen. > Bijvoorbaatdank, > > Marc Stevens. > > > import pygame > from sys import exit > > pygame.init() > size=[800,600] > screen=pygame.display.set_mode(size) > while 1: > for event in pygame.event.get(): > if event.key==k_ESCAPE: > keys = pygame.key.get_pressed() > pygame.display.flip() > pygame.quit() > ___ > Python-nl mailing list > Python-nl@python.org > https://mail.python.org/mailman/listinfo/python-nl > -- Rob W. W. Hooft || r...@hooft.net || http://hooft.net/rob || @rwwh ___ Python-nl mailing list Python-nl@python.org https://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] cx_Freeze
Marc, Python is “case-sensitive”, dat betekent dat hoofdletters en kleine letters verschillend zijn. Je module importeert “Executable”, met een hoofdletter. Die moet je dan ook aanroepen, en niet “executable”. Ik kan je verder niet helpen met cx_freeze, maar dit is hoop ik een stapje verder. Rob On 10 sep. 2014, at 1:36 , Marc Stevens wrote: > Geachte heer/vrouw, > hoi hier met Marc. > > Om gemotiveerd te blijven van het schrijven van python programma’s wil ik ze > heel graag kunnen distribueren kunnen. > Ik zal dan ook niet rusten totdat ik een python programma kan omzetten in een > executable. > Vorige week had ik aangegeven dat ik problemen had met cx-Freeze en contact > gehad met Michiel Overtoom. > Michiel was niet bekend met cx-Freeze en stelde pynist voor. Dit is me te > ingewikkeld omdat er een tutorial van hier tot ginder bij zit, en ik heb me > al verdiept in cxFreeze. > Zoals ik al zei, heb ik me in cx_freeze verdiept, en het idee dat ik dit nu > begrijp hoe het werkt. Helaas heb ik nog wat last van wat kinderziektes en > gaat het waarschijnlijk fout door een kleine euvel. > > Ik werk met windows 7 en python2.7 > Windows is 64-bit en omdat ik de executables universeel wil houden heb ik > gekozen voor de 32-bit versie van python. > > Alles lijkt goed te gaan totdat ik in het cmd venster het volgende in geef: > > cd \ > cd \python27 > python setup.py build > > Na dat laatste commando geeft hij de volgende foutmelding: > > > > > Traceback (most recent call last): >File „setup.py”, line 13, in > executables = [executeble(„ > nieuwbestand.py”, base=base)]) > NameError: name ‚ executable’ is not defined’ > > > > > In de bijlage de setup.py en het programma nieuwbestand > > > > > > > > ___ > Python-nl mailing list > Python-nl@python.org > https://mail.python.org/mailman/listinfo/python-nl — Rob W. W. Hooft || r...@hooft.net || http://hooft.net/rob || @rwwh smime.p7s Description: S/MIME cryptographic signature ___ Python-nl mailing list Python-nl@python.org https://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] PUN Meeting Den Haag herinnering
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Martijn Pieters wrote: > Er is nog alle ruimte om een praatje te houden. Als jullie het leuk vinden kan ik wel iets vertellen over het bedrijf waarvoor ik werk (Bruker AXS, we maken instrumenten voor Röntgenanalyse) en wat/hoe wij met python werken. Rob - -- Rob W.W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob/ -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFC7SDdH7J/Cv8rb3QRAvLXAJ0UDS/4XaTABtVlELmVIOO30mcLngCgm/GH erqg1mK/L/86jkA0I4ikSmc= =gkzL -END PGP SIGNATURE- ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] Pepernoten meeting
>>Het is een GROOT systeem (+/- 60K pythoncode) Dat is inderdaad flink Wedstrijdje? nows122[110]seattle% pycount `find . -name \*.py` Number of python files :915 Number of lines : 297147 Number of classes: 2393 Number of methods: 13264 Number of functions : 1057 Number of documented fun/mod : 12208 (69.2%) Number of doc lines : 37493 (12.6%) Number of comment-only lines : 27536 ( 9.3%) Number of empty lines: 44219 (14.9%) Number of import statements : 5219 Number of toplevel imports : 3046 (58.4%) Number of code lines : 165966 (55.9%) (plus 31k lines C++) Dit is een compleet applicatieproject voor Röntgendiffractie dat wordt ontwikkeld waar ik werk Rob -- Rob W.W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob/ ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] PyContest
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Guyon Morée wrote: > Het kortste (en lelijkste) waar ik op kom is: > > c=' _ | ||_| | | _ _||_ _ _| _| |_| | _ |_ _| _ |_ |_| _ > | | _ |_||_| _ |_| _|' > def seven_seg(x): return > '\n'.join([''.join([c[int(d)*9+p:int(d)*9+p+3] for d in x]) for p in > (0,3,6)]+['']) Volgens mij is dit 5 bytes korter, en misschien wel minder lelijk. f=" _ _ _ _ _ _ _ _ ","| | | _| _||_||_ |_ ||_||_|", "|_| ||_ _| | _||_| ||_| _|" def seven_seg(x): return '\n'.join([''.join([l[d*3:d*3+3] for d in map(int,x)]) for l in f])+'\n' Rob - -- Rob W.W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob/ -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDsa03H7J/Cv8rb3QRAl1jAJ97q5l2CHhojiT4gNB2HnUkJGO2iACglq8k 9k9Cl04yOW6Qc0pgVN3TPLI= =0tyS -END PGP SIGNATURE- ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] Wat is de module om een disk te benaderen?
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Ron Speerstra wrote: > # De disk eigenschappen (voor de naam, etc.) > # Nu eigenschappen voor het herkennen van een file, dir, grote grote van de > inhoud Kijk eens verder naar os.stat() en de stat module! http://docs.python.org/lib/module-stat.html http://docs.python.org/lib/os-file-dir.html Groeten, Rob - -- Rob W.W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob/ -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDtZIRH7J/Cv8rb3QRAv0lAJ0eVfs0XzmKOl87buRw2o3RTFPctwCeMXPy bvVNin1I+86ziguDYqtoGEc= =Tmzo -END PGP SIGNATURE- ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] Classes in andere modules
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Math wrote: > *Mag ik je nog een laatste vraag stellen?* > *Iets wat ik niet helemaal kan doorgronden* > *In de 1e module importeer ik de 2e module en om een object in de 1e > module te benaderen vanuit de 2e module importeer ik de 1e module in de > 2e module (KAN DIT??).* > *En dan gaat het fout...dan kan die in de 2e module geen classes > meer vinden.* Je kunt wel modules gebruiken in elkaar. Alleen is het geen echt teken van goed softwareontwerp. Als je software in lagen schrijft, heb je vanuit elke laag alleen modules uit een lagere laag nodig. Soms zijn er uitzonderingen, en daarom kan het wel. Je moet dan alleen precies weten in welke volgorde python de zaak uitvoert. Statements in een bestand worden onmiddellijk uitgevoerd, behalve als ze in een functie of andere definitie staan. Dus: In module A staat bovenin een "import B". Daar begint de compiler meteen aan het importeren van B; de rest van A is dus nog niet bekend. Als bovenin B dan "import A" staat mag dat wel, alleen op dit moment is die A nog leeg, we zijn nog bezig om die module te importeren. Als je dus voor de definities in B klassen in A nodig hebt, kan dat niet. Als B helemaal ingeladen is, wordt daarna het laden van A afgemaakt. Daarna kunnen functies uit B die je aanroept dus wel bij alles wat in A is gestopt. Dus ===a.py= import b def foo(): return "bar" b.test() b.py import a print a.foo() # Dit kan niet! def test(): print a.foo() # Dit kan wel. Rob - -- Rob W.W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob/ -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFD4kSfH7J/Cv8rb3QRAq9FAJsHBOkJtaKJCj39nKQ2cI9tRN2fygCeMxGp 7oMBObcVZW8dKdnM1Tz6f58= =fyi+ -END PGP SIGNATURE- ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] Classes in andere modules
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Math wrote: > *Bedankt voor de reactie..* > *Ik kan goed volgen wat je vertelt alleen is het niet zo makkelijk en > snel toe te passen in men eigen program (denk ik zo).* > *En wat betreft dat SoftwareOntwerp in lagen...is het misschien mogelijk > dat je mij dit met onderstaande 2 modules als voorbeeld laat zien hoe > dit dan moet?* Allereerst: geef antwoord aan de mailinglist! En daarna: nee, aan de hand van mijn modules kan ik dat niet weergeven. Het gaat om het ontwerp van software, en dat kun je niet in een E-mailtje leren. Je moet proberen om de taken van de software zoveel mogelijk in onafhankelijke delen te knippen, en die onafhankelijke delen te programmeren als onafhankelijke modules. Een goed voorbeeld is de wx modules: die hebben geen van allen code van jou nodig om hun werk te doen. De functie "gui" is abstract gemaakt, en in die modules gestopt. Die modules vormen samen een laag in de software. Rob - -- Rob W.W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob/ -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFD4mNzH7J/Cv8rb3QRAm8IAJ9oEfK6JT5aEAJ3ALTyJJeyQN5nrQCffLvn glaHLfEw0D+cjVNdhqNEkW0= =kPoS -END PGP SIGNATURE- ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl
Re: [python-nl] Running more than 1 App- instance
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Reinout van Rees wrote: > Math wrote: > >>Verkeerde lijst > > > Reply weer naar de lijst. > > >>Momenteel kan ik mijn Python programma meerdere malen starten. >>Is er een manier om dit "weg te programmeren" om het zomaar eens te >>stellen? > > > Ah, lockfile ergens opslaan. if bestand bestaat, then roep "ik kan niet > starten, lockfile gevonden". Op een multi-user machine kan dat vervelend worden: gebruiker A start het programma, gebruiker B wil dat ook, maar kan niet want A heeft het in gebruik. Met een licentiesysteem kan dat goed zijn, maar meestal is dat niet wat je bedoelt. Ook moet je uitkijken dat je die lockfile niet tussen machines deelt, want dan zou een gebruiker met een gedeelde login directory slechts op 1 machine het programma kunnen starten. Verder moet je een trucje hebben om een lockfile als deze is verlopen te kunnen weggooien. Je kunt er bijvoorbeeld op een unix-kast de proces-id van de taak inzetten, een nieuw gestart proces zou dan kunnen kijken of dat proces nog loopt (met een kill-probe). Onder MS/Win is dit soort techniek gebruikelijk, onder unix start men vaak het programma een tweede maal. Alleen als het programma resources (bijv. hardware) gebruikt die niet gedeeld kunnen worden is dat een mogelijk probleem. Maar in dat geval zou je niet moeten controleren of er al een kloon van het programma draait, maar of de resources nog beschikbaar zijn. Zo programmeren we ook in python: niet controleren of een object van het juiste type is, maar controleren of het een bepaalde methode kent Rob - -- Rob W.W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob/ -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFEFd6uH7J/Cv8rb3QRAmMJAJ4gBdTLK4F7oQdv8s5K3ci5NrTnMQCeJ35n o4G0grY97vrz439o3ySANvg= =8C1b -END PGP SIGNATURE- ___ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl