Seite 1 von 1
Problem mit random
Verfasst: Mittwoch 10. März 2010, 18:16
von Wolfgang.Belau
Habe ein Problem mit random bei der Verwendung von pylab:
Code: Alles auswählen
import random
# importing pylab causes error, running python v2.5.2 or v2.6.4...
#from pylab import *
#
random.seed()
print "a random number below 11:", random.randint(0,11)
Verfasst: Mittwoch 10. März 2010, 18:39
von jbs
Na und was passiert beim Fehler?
Verfasst: Mittwoch 10. März 2010, 19:02
von BlackJack
@Wolfgang.Belau: `pylab` enthält den Namen `random`:
Code: Alles auswählen
In [47]: pylab.random
Out[47]: <built-in method random_sample of mtrand.RandomState object at 0xb7d3b380>
Schönes Beispiel warum *-Importe problematisch sind.
Fehlermeldung
Verfasst: Donnerstag 11. März 2010, 09:55
von Wolfgang.Belau
ok, hier die Meldung:
Code: Alles auswählen
File "C:\Documents and Settings\...\test_random.py", line 5, in <module>
random.seed()
AttributeError: 'builtin_function_or_method' object has no attribute 'seed'
Verfasst: Donnerstag 11. März 2010, 10:15
von cofi
Wenn du das Problem immernoch hast, solltest du ganz drigendend BlackJacks Post lesen.
Verfasst: Donnerstag 11. März 2010, 10:16
von Rebecca
Ähm, laut Fehlermeldung versuchts du seed aufzurufen, laut obigem Codeschnipsel randint...
Aber wie BlackJack sagte, ist dein random anscheinend die Funktion aus pylab, nicht das Modul aus der stdlib.
Verfasst: Donnerstag 11. März 2010, 10:39
von Wolfgang.Belau
Wie kann die random Funktion aus dem python Modul random korrekt referenziert werden, um sie von der pylab Version zu unterscheiden?
random.random.seed() löst das Problem nicht.
Verfasst: Donnerstag 11. März 2010, 10:46
von CM
Nochmal: Der Import von pylab
importiert ebenfalls "random" und überschreibt damit das build-in random-Modul. Einfach den Sternchenimport vermeiden und nur das von pylab/Matplotlib importieren, was Du tatsächlich benötigst. Oder
ausführen und z. B. statt
dies:
Mehr zum Thema Module gibt es im
Tutorial.
HTH
Christian
Verfasst: Donnerstag 11. März 2010, 10:57
von Wolfgang.Belau
Danke für den Hinweis!
Verfasst: Donnerstag 11. März 2010, 11:17
von ...
Laut obigem Codeschnipsel sollte pylab aber keine Probleme gemacht haben.
Es scheint doch auskommentiert zu sein.
Verfasst: Donnerstag 11. März 2010, 11:25
von cofi
Das solltest du vielleicht nochmal lesen:
Code: Alles auswählen
# importing pylab causes error, running python v2.5.2 or v2.6.4...
#from pylab import *
Das Problem tritt naemlich erst dann auf, wenn man den Kommentar entfernt, was der Kommentar drueber ja auch sagt.