Greetings, fellow Pythonistas!
Hello, all! This post is to announce a new Python-oriented blog. See my .sig for the URL. I also have a question: is there any "official" method for getting listed on Planet Python? Thanks! A fellow Pythonista -- code.py: A blog about life, the universe, and Python http://pythonista.wordpress.com ** Posted from http://www.teranews.com ** -- http://mail.python.org/mailman/listinfo/python-list
Assigning to __class__ : bad form?
I've been wondering for a while about whether assigning to __class__ is bad form or not. Specifically, I mean doing so when some other method of implementing the functionality you're after is available (i.e. using an adapter, or something like the strategy pattern). To give an example and a non-example of what I'm talking about, consider the following recipes from the online Python Cookbook: Ring Buffer: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/68429 In this case, I think the assignment to __class__ just obfuscates things, and the example would be better coded as a single class. On the other hand, Fast copy of an object having a slow __init__ : http:// aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66507 This seems like a reasonable use case for assigning to __class__ (except that it's already implemented in the 'new' module, but, read the Martelli- bot's comments near the end of the recipe). I consider this a reasonable use case for assigning to __class__, because, short of the 'new' module, I don't see any other way to accomplish it. So, what is the opinion of the broader Python community? Is code that assigns to __class__ just clever trickiness to be avoided, or is it sometimes a good thing? -- code.py: A blog about life, the universe, and Python http://pythonista.wordpress.com ** Posted from http://www.teranews.com ** -- http://mail.python.org/mailman/listinfo/python-list
Change in interactive interpreter?
I remember the interactive interpreter used to define the name _ to return the value of the last expression that was evaluated. However, I tried it just today and got a NameError. Is this a change in the interpreter or is there a configuration option I need to set to enable it? Thanks! -- code.py: A blog about life, the universe, and Python http://pythonista.wordpress.com ** Posted from http://www.teranews.com ** -- http://mail.python.org/mailman/listinfo/python-list
Re: Do this as a list comprehension?
On Thu, 05 Jun 2008 23:42:07 -0400, John Salerno wrote: > Is it possible to write a list comprehension for this so as to produce a > list of two-item tuples? > > base_scores = range(8, 19) > score_costs = [0, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3] print zip(base_scores, > score_costs) > score_costs = [(base_scores[i], score_costs[i]) for i in range (len (base_scores))] But, I'd rather just use zip. :-) -- code.py: A blog about life, the universe, and Python http://pythonista.wordpress.com ** Posted from http://www.teranews.com ** -- http://mail.python.org/mailman/listinfo/python-list
Re: How to kill a thread?
It's always been my understanding that you can't forcibly kill a thread in Python (at least not in a portable way). The best you can do is politely ask it to die, IIRC. -- code.py: A blog about life, the universe, and Python http://pythonista.wordpress.com ** Posted from http://www.teranews.com ** -- http://mail.python.org/mailman/listinfo/python-list
Re: Change in interactive interpreter?
On Fri, 06 Jun 2008 11:36:13 -0700, Gary Herron wrote: > Try again. I think you'll find it's still there -- although you have to > execute a something that returns a value before it's set for the first > time. That was, indeed the problem. Boy do I feel silly now. :-) Thanks -- code.py: A blog about life, the universe, and Python http://pythonista.wordpress.com ** Posted from http://www.teranews.com ** -- http://mail.python.org/mailman/listinfo/python-list
Re: Any GUI lib wiget is capable of a WYSIWYG editor?
On Tue, 24 Jun 2008 14:23:12 +0800, oyster wrote: > that is an html editor with text and picture, while the picture is > linked to the local image file. > > for wxPython, the richtextcontrol save the image as en embedded object, > so it is not my choice > > is there any other GUI lib and/or sample code to do so? > > thanks Consider TkHtml. You can find a Tix wrapper for it here: http://tix.sourceforge.net/Tixapps/src/Python/TkHtml.py -- code.py: A blog about life, the universe, and Python http://pythonista.wordpress.com ** Posted from http://www.teranews.com ** -- http://mail.python.org/mailman/listinfo/python-list
Python equivalent of call/cc?
Yesterday, I was hacking around a bit, trying to figure out how to implement the semantics of call/cc in Python. Specifically, I wanted to translate this Scheme code to equivalent Python: (define theContinuation #f) (define (test) (let ((i 0)) (call/cc (lambda (k) (set! theContinuation k))) (set! i (+ i 1)) i)) (test) (theContinuation) (theContinuation) Incidentally, those last three lines evaluate to 1, 2, and 3, respectively. The best Python translation I could come up with was something like this (targeted at Python 2.5): import inspect theContinuation = None def call_cc (f): f (inspect.currentframe().f_back) def invoke (c): exec c.f_code in c.f_globals, c.f_locals def test(): i = 0 call_cc (lambda k: globals().update({'theContinuation' : k })) i = i + 1 print i test() invoke (theContinuation) invoke (theContinuation) Now, this code is wrong on a number of levels [I am indeed aware of exactly how ugly that lambda is...], but, in particular, my continuations / stack frames don't seem to be resuming at the right point. I'd expect invoke (theContinuation) to restart on the line immediately following call_cc, but it does not. Not surprisingly, the output is also wrong. (I get 1, 1, and 1 rather than 1, 2, and 3.) Can anyone help me by, perhaps pointing out some silly error I made? Failing that, can someone show me a working implementation of call/cc (preferably based on some form of stack inspection)? Thanks! -- code.py: A blog about life, the universe, and Python http://pythonista.wordpress.com ** Posted from http://www.teranews.com ** -- http://mail.python.org/mailman/listinfo/python-list
Building python-svn from source
First of all, I apologize if this would be more appropriate for python- dev, but I don't normally subscribe to that list, and felt it would also be of general use, so I'm having problems building the latest Python 2.6 and 3.0 from subversion, and I'm not sure how to resolve the problem. In each case, configure executes without problem, but, when I execute 'make', I get this error (the same one for both 2.6 and 3.0): ./Parser/asdl_c.py -h ./Include ./Parser/Python.asdl Must specify exactly one output file make: *** [Include/Python-ast.h] Error 1 Am I doing something wrong? If not, how do I work around this error? Thanks! -- code.py: A blog about life, the universe, and Python http://pythonista.wordpress.com ** Posted from http://www.teranews.com ** -- http://mail.python.org/mailman/listinfo/python-list
Re: Building python-svn from source
On Tue, 12 Aug 2008 07:04:41 +0200, Martin v. Löwis wrote: > For some reason, the getopt module in your host's python cannot process > the command line options to asdl_c.py correctly. > > What Python version do you have installed in PATH? Martin, Thank you so much! In fact, I did have a python executable on my PATH in ~/bin that was screwing things up. After I moved it (thus leaving the system default python as the only python executable on my PATH), the build process went smoothly (except for not being able to find a few libraries for some C extensions, but I think I can fix that). I now have working python2.6 and python3.0 executables to play with, thanks to you. :-) -- code.py: A blog about life, the universe, and Python http://pythonista.wordpress.com ** Posted from http://www.teranews.com ** -- http://mail.python.org/mailman/listinfo/python-list