The question was, is the statement:
time.time() < time.time()
always true? Seems it should be false, since the statement itself
occurs at one time instant.. but of course we know that python doesn't
execute code that way.. So my question is, why doesn't Python work this
way?
(PS, I wasn't smoking anything, its a figure of speech :) )
This would only be false if the time between the 2 calls was less than
the precision of the OS call that time.time uses.
So long as the clock on the machine it's running on is not set backwards
between the two calls, you can guarantee that
time.time() <= time.time()
will always evaluate true.
However, it's always possible (though incredibly unlikely) that an
external process changes the clock between the two system calls that are
made.
Tim Delaney
> always true? Seems it should be false, since the statement itself
> occurs at one time instant.. but of course we know that python
> doesn't execute code that way..
C++ also wouldn't. How could multiple object instantiations be
atomic?
Regards,
Björn
--
BOFH excuse #42:
spaghetti cable cause packet failure
>The question was, is the statement:
>
>time.time() < time.time()
>
>always true? Seems it should be false, since the statement itself
>occurs at one time instant.. but of course we know that python doesn't
>execute code that way.. So my question is, why doesn't Python work this
>way?
The only thing Python can guarantee, is that the left expression is
evaluated before the right one (5.13 Evaluation order, Language Reference).
Then, whether the first call yields a result always less (or equal)
to the second, is out of Python scope (and control).
(They might be equal if both calls get the same quantum of time; they
might be reversed if some other process sets the time in the past).
--
Gabriel Genellina
Softlab SRL
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
> So long as the clock on the machine it's running on is not set
> backwards between the two calls, you can guarantee that
>
> time.time() <= time.time()
>
> will always evaluate true.
Really? Where does Python guarantee that the left side *must* be
evaluated before the right side of a comparison? (If the right side
were to be evaluated first, the left might end up with a greater
value.)
--
\ "A free society is one where it is safe to be unpopular." -- |
`\ Adlai Ewing Stevenson |
_o__) |
Ben Finney
> The only thing Python can guarantee, is that the left expression is
> evaluated before the right one (5.13 Evaluation order, Language
> Reference).
Thanks, that answers my question asked elsewhere.
--
\ "One thing vampire children have to be taught early on is, |
`\ don't run with a wooden stake." -- Jack Handey |
_o__) |
Ben Finney
From my experience with os's.
Time is updated at intervals- they may be as low as 1mS See . So for that
millisecond multiple readings of the time will always return the same
result. Therefore time.time() < time.time() will be false for most readings.
However the result could be true if you catch the exact time when the os
updates its clock. It will only be True for a single execution of the line
and you will have to be lucky to catch it at just the right time.
Of course if you hard loop over the interval its possible to see the
transition.
for x in xrange (10000):
t = time.time()
if t < time.time:
print "transition at ", t
Enjoy.
Andy
"Ben Finney" <bignose+h...@benfinney.id.au> wrote in message
news:mailman.568.11641593...@python.org...
8<----------------------------------
> .... since the statement itself
> occurs at one time instant..
nothing, but nothing, can occur at one time instant....
- Hendrik
> Really? Where does Python guarantee that the left side *must* be
> evaluated before the right side of a comparison?
in the language reference:
http://docs.python.org/ref/evalorder.html
</F>
Well, as long as we're being pedantic, surely that should read "only one
thing can occur at any time instant..."
--
Tim Roberts, ti...@probo.com
Providenza & Boekelheide, Inc.
> "Hendrik van Rooyen" <ma...@microcorp.co.za> wrote:
>
> >"flamesrock" <flame...@gmail.com> wrote:
> >
> >8<----------------------------------
> >
> >> .... since the statement itself
> >> occurs at one time instant..
> >
> >nothing, but nothing, can occur at one time instant....
>
> Well, as long as we're being pedantic, surely that should read "only one
> thing can occur at any time instant..."
No its worse than that - what I mean is that everything takes finite time...
:-) Hendrik