documentation: what is "::="?
Diez B. Roggisch
deets at nospam.web.de
Mon Oct 13 23:41:32 CEST 2008
Anita Kean schrieb:
> I just downloaded the new python2.6 documentation,
> full of hopes it would solve some basic mysteries for me.
> I'm new to python, so please forgive my ignorance.
> I've two questions.
> 1) Everywhere in the old and new documentation, the
> string of characters "::=" is used in "explaining" things - but
> I can nowhere find any stated meaning of this string.
> I've had no luck searching on it on search engines -
> and even less if I don't quote it - the search engine returns an
> I couldn't find one occurrence of it in the new 2.6 tutorial,
> nor in the sphinx-generated index of symbols, where "==" and
> other character strings appear.
> But for example in the reference directory, a grep on "::="
> returns many many hits,
> and the first one in simple_stmts.html (which I sort of
> hoped _would_ be simple) was (quote):
>> Simple statements¶
>> Simple statements are comprised within a single logical line. Several
>> simple statements may occur on a single line separated by semicolons.
>> The syntax for simple statements is:
>> simple_stmt ::= expression_stmt
>> | assert_stmt
>> | assignment_stmt
>> | augmented_assignment_stmt
>> | pass_stmt
>> | del_stmt
>> | print_stmt
>> | return_stmt
>> | yield_stmt
>> | raise_stmt
>> | break_stmt
>> | continue_stmt
>> | import_stmt
>> | global_stmt
>> | exec_stmt
>> Expression statements¶
> So what's the relationship between the left and right hand sides of the "::="
> string here?
> 2) There is one other symbol the Python documentation seems to have appropriated
> but never documents which I also come up against constantly, but which is never
> defined - its use of "<==>"
> e.g. in the os module docs
> | x.__str__() <==> str(x)
> (and that's all there is on __str__ in os)
> I'm guessing something like "if and only if" is implicated here?
It's equivalence, like in
x = 2 <==> 2*x = 4
More information about the Python-list