How to make Python run as fast (or faster) than Julia
Ned Batchelder
ned at nedbatchelder.com
Thu Feb 22 11:55:43 EST 2018
On 2/22/18 11:00 AM, bartc wrote:
> On 22/02/2018 12:03, bartc wrote:
>
>> On the fib(20) test, it suggests using this to get a 30,000 times
>> speed-up:
>
> BTW while doing my tests, I found you could redefine the same function
> with no error:
>
> def fred():
> pass
>
> def fred():
> pass
>
> def fred():
> pass
>
> For classes too. I was aware you could reassign a different value to
> such names, but didn't know this applied to def.
>
> I guess the reason is that 'def' is just another statement, and
> statements can be conditional, so that you can have several versions.
More importantly, "def x" is just a convenient way to express an
assignment to x. It behaves exactly like "x = make_a_function(name='x',
...)" (where I'm waving my hands about what happens in the ellipsis...
:) Just as there is no prohibition on "x = 1; x = 2", there's no
prohibition on "def x(); def x()"
Lots of Python statements are assignments to names, with precisely the
same referencing and scoping behaviors as conventional assignment. All
of these assign to x:
x = ...
def x(...)
def fn(x)
class x
import x
import blah as x
from blah import x
for x in ...
with blah as x
except Something as x
--Ned.
More information about the Python-list
mailing list