Optimising literals away

Benjamin Peterson benjamin at python.org
Mon Aug 30 12:00:13 EDT 2010


Tobias Weber <towb <at> gmx.net> writes:

> 
> Hi,
> whenever I type an "object literal" I'm unsure what optimisation will do 
> to it.
> 
> def m(arg):
>   if arg & set([1,2,3]):
>     return 4
> 
> Is the set created every time the method is called?

Yes, and the list.

> What about a 
> frozenset?

Yep.

> Or tuple vs list?

Tuples containing other immutable literals can be optimized. (In cpython anyway.)

> After how many calls per second does it pay 
> to save it at the module level?

Ask the profiler. Probably not many.

> Would anybody else find this ugly?

I do it all the time. 







More information about the Python-list mailing list