Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
a1cce714
Kaydet (Commit)
a1cce714
authored
Tem 24, 1998
tarafından
Fred Drake
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Converted some {tabular}s to use {tablei*} environments.
üst
30e52653
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
64 additions
and
69 deletions
+64
-69
ref2.tex
Doc/ref/ref2.tex
+22
-34
ref4.tex
Doc/ref/ref4.tex
+42
-35
No files found.
Doc/ref/ref2.tex
Dosyayı görüntüle @
a1cce714
\chapter
{
Lexical analysis
}
\chapter
{
Lexical analysis
\label
{
lexical
}
}
A Python program is read by a
\emph
{
parser
}
. Input to the parser is a
stream of
\emph
{
tokens
}
, generated by the
\emph
{
lexical analyzer
}
. This
...
...
@@ -33,7 +33,7 @@ set.
A Python program is divided into a number of
\emph
{
logical lines
}
.
\index
{
line structure
}
\subsection
{
Logical
L
ines
}
\subsection
{
Logical
l
ines
}
The end of
a logical line is represented by the token NEWLINE. Statements cannot
...
...
@@ -259,17 +259,11 @@ def finally in print
Certain classes of identifiers (besides keywords) have special
meanings. These are:
\begin{center}
\begin{tabular}
{
|l|l|
}
\hline
Form
&
Meaning
\\
\hline
\code
{_
*
}
&
Not imported by
\code
{
from
\var
{
module
}
import *
}
\\
\code
{__
*
__}
&
System-defined name
\\
\code
{__
*
}
&
Class-private name mangling
\\
\hline
\end{tabular}
\end{center}
\begin{tableii}
{
l|l
}{
code
}{
Form
}{
Meaning
}
\lineii
{_
*
}{
Not imported by
\samp
{
from
\var
{
module
}
import *
}}
\lineii
{__
*
__}{
System-defined name
}
\lineii
{__
*
}{
Class-private name mangling
}
\end{tableii}
(XXX need section references here.)
...
...
@@ -322,27 +316,21 @@ to those used by Standard \C{}. The recognized escape sequences are:
\index
{
Standard C
}
\index
{
C
}
\begin{center}
\begin{tabular}
{
|l|l|
}
\hline
Escape Sequence
&
Meaning
\\
\hline
\code
{
\e
}
\emph
{
newline
}
&
Ignored
\\
\code
{
\e\e
}
&
Backslash (
\code
{
\e
}
)
\\
\code
{
\e
'
}
&
Single quote (
\code
{
'
}
)
\\
\code
{
\e
"
}
&
Double quote (
\code
{
"
}
)
\\
\code
{
\e
a
}
&
\ASCII
{}
Bell (BEL)
\\
\code
{
\e
b
}
&
\ASCII
{}
Backspace (BS)
\\
\code
{
\e
f
}
&
\ASCII
{}
Formfeed (FF)
\\
\code
{
\e
n
}
&
\ASCII
{}
Linefeed (LF)
\\
\code
{
\e
r
}
&
\ASCII
{}
Carriage Return (CR)
\\
\code
{
\e
t
}
&
\ASCII
{}
Horizontal Tab (TAB)
\\
\code
{
\e
v
}
&
\ASCII
{}
Vertical Tab (VT)
\\
\code
{
\e
}
\emph
{
ooo
}
&
\ASCII
{}
character with octal value
\emph
{
ooo
}
\\
\code
{
\e
x
}
\emph
{
hh...
}
&
\ASCII
{}
character with hex value
\emph
{
hh...
}
\\
\hline
\end{tabular}
\end{center}
\begin{tableii}
{
l|l
}{
code
}{
Escape Sequence
}{
Meaning
}
\lineii
{
\e\var
{
newline
}}
{
Ignored
}
\lineii
{
\e\e
}
{
Backslash (
\code
{
\e
}
)
}
\lineii
{
\e
'
}
{
Single quote (
\code
{
'
}
)
}
\lineii
{
\e
"
}
{
Double quote (
\code
{
"
}
)
}
\lineii
{
\e
a
}
{
\ASCII
{}
Bell (BEL)
}
\lineii
{
\e
b
}
{
\ASCII
{}
Backspace (BS)
}
\lineii
{
\e
f
}
{
\ASCII
{}
Formfeed (FF)
}
\lineii
{
\e
n
}
{
\ASCII
{}
Linefeed (LF)
}
\lineii
{
\e
r
}
{
\ASCII
{}
Carriage Return (CR)
}
\lineii
{
\e
t
}
{
\ASCII
{}
Horizontal Tab (TAB)
}
\lineii
{
\e
v
}
{
\ASCII
{}
Vertical Tab (VT)
}
\lineii
{
\e\var
{
ooo
}}
{
\ASCII
{}
character with octal value
\emph
{
ooo
}}
\lineii
{
\e
x
\var
{
hh...
}}
{
\ASCII
{}
character with hex value
\emph
{
hh...
}}
\end{tableii}
\index
{
ASCII@
\ASCII
{}}
In strict compatibility with Standard
\C
, up to three octal digits are
...
...
Doc/ref/ref4.tex
Dosyayı görüntüle @
a1cce714
\chapter
{
Execution model
}
\chapter
{
Execution model
\label
{
execmodel
}
}
\index
{
execution model
}
\section
{
Code blocks, execution frames, and namespaces
}
\label
{
execframes
}
...
...
@@ -6,7 +6,7 @@
\indexii
{
execution
}{
frame
}
\index
{
namespace
}
A
{
\em
code block
}
is a piece of Python program text that can be
A
\dfn
{
code block
}
is a piece of Python program text that can be
executed as a unit, such as a module, a class definition or a function
body. Some code blocks (like modules) are normally executed only once, others
(like function bodies) may be executed many times. Code blocks may
...
...
@@ -29,7 +29,7 @@ passed to the built-in function \function{eval()} and to the
read and evaluated by the built-in function
\function
{
input()
}
is a
code block.
A code block is executed in an execution frame. An
{
\em
execution
A code block is executed in an execution frame. An
\dfn
{
execution
frame
}
contains some administrative information (used for debugging),
determines where and how execution continues after the code block's
execution has completed, and (perhaps most importantly) defines two
...
...
@@ -37,11 +37,11 @@ namespaces, the local and the global namespace, that affect
execution of the code block.
\indexii
{
execution
}{
frame
}
A
{
\em
namespace
}
is a mapping from names (identifiers) to objects.
A
\dfn
{
namespace
}
is a mapping from names (identifiers) to objects.
A particular namespace may be referenced by more than one execution
frame, and from other places as well. Adding a name to a namespace
is called
{
\em
binding
}
a name (to an object); changing the mapping of
a name is called
{
\em
rebinding
}
; removing a name is
{
\em
unbinding
}
.
is called
\dfn
{
binding
}
a name (to an object); changing the mapping of
a name is called
\dfn
{
rebinding
}
; removing a name is
\dfn
{
unbinding
}
.
Namespaces are functionally equivalent to dictionaries (and often
implemented as dictionaries).
\index
{
namespace
}
...
...
@@ -49,8 +49,8 @@ implemented as dictionaries).
\indexii
{
rebinding
}{
name
}
\indexii
{
unbinding
}{
name
}
The
{
\em
local namespace
}
of an execution frame determines the default
place where names are defined and searched. The
{
\em
global
The
\dfn
{
local namespace
}
of an execution frame determines the default
place where names are defined and searched. The
\dfn
{
global
namespace
}
determines the place where names listed in
\keyword
{
global
}
statements are defined and searched, and where names that are not
bound anywhere in the current code block are searched.
...
...
@@ -105,36 +105,43 @@ imported (i.e., when it is loaded). Note that in almost all cases,
the global namespace is the namespace of the containing module ---
scopes in Python do not nest!
\begin{center}
\begin{tabular}
{
|l|l|l|l|
}
\hline
Code block type
&
Global namespace
&
Local namespace
&
Notes
\\
\hline
Module
&
n.s. for this module
&
same as global
&
\\
Script (file or command)
&
n.s. for
\module
{__
main
__}
&
same as global
&
(1)
\\
Interactive command
&
n.s. for
\module
{__
main
__}
&
same as global
&
\\
Class definition
&
global n.s. of containing block
&
new n.s.
&
\\
Function body
&
global n.s. of containing block
&
new n.s.
&
(2)
\\
String passed to
\keyword
{
exec
}
statement
&
global n.s. of containing block
&
local n.s. of containing block
&
(2), (3)
\\
String passed to
\function
{
eval()
}
&
global n.s. of caller
&
local n.s. of caller
&
(2), (3)
\\
File read by
\function
{
execfile()
}
&
global n.s. of caller
&
local n.s. of caller
&
(2), (3)
\\
Expression read by
\function
{
input()
}
&
global n.s. of caller
&
local n.s. of caller
&
\\
\hline
\end{tabular}
\end{center}
\begin{tableiv}
{
l|l|l|l
}{
textrm
}
%
{
Code block type
}{
Global namespace
}{
Local namespace
}{
Notes
}
\lineiv
{
Module
}
%
{
n.s. for this module
}
%
{
same as global
}{}
\lineiv
{
Script (file or command)
}
%
{
n.s. for
\module
{__
main
__}}
%
{
same as global
}{
(1)
}
\lineiv
{
Interactive command
}
%
{
n.s. for
\module
{__
main
__}}
%
{
same as global
}{}
\lineiv
{
Class definition
}
%
{
global n.s. of containing block
}
%
{
new n.s.
}{}
\lineiv
{
Function body
}
%
{
global n.s. of containing block
}
%
{
new n.s.
}{
(2)
}
\lineiv
{
String passed to
\keyword
{
exec
}
statement
}
%
{
global n.s. of containing block
}
%
{
local n.s. of containing block
}{
(2), (3)
}
\lineiv
{
String passed to
\function
{
eval()
}}
%
{
global n.s. of caller
}
%
{
local n.s. of caller
}{
(2), (3)
}
\lineiv
{
File read by
\function
{
execfile()
}}
%
{
global n.s. of caller
}
%
{
local n.s. of caller
}{
(2), (3)
}
\lineiv
{
Expression read by
\function
{
input()
}}
%
{
global n.s. of caller
}
%
{
local n.s. of caller
}{}
\end{tableiv}
\refbimodindex
{__
main
__}
Notes:
\begin{description}
\item
[n.s.]
means
{
\em
namespace
}
\item
[n.s.]
means
\emph
{
namespace
}
\item
[(1)]
The main module for a script is always called
\module
{__
main
__}
; ``the filename don't enter into it.''
...
...
@@ -154,7 +161,7 @@ dictionary representing the current global and local namespace,
respectively. The effect of modifications to this dictionary on the
namespace are undefined.
%
\footnote
{
The current implementations return the dictionary actually
used to implement the namespace,
{
\em
except
}
for functions, where
used to implement the namespace,
\emph
{
except
}
for functions, where
the optimizer may cause the local namespace to be implemented
differently, and
\function
{
locals()
}
returns a read-only dictionary.
}
...
...
@@ -162,8 +169,8 @@ differently, and \function{locals()} returns a read-only dictionary.}
Exceptions are a means of breaking out of the normal flow of control
of a code block in order to handle errors or other exceptional
conditions. An exception is
{
\em
raised
}
at the point where the error
is detected; it may be
{
\em
handled
}
by the surrounding code block or
conditions. An exception is
\emph
{
raised
}
at the point where the error
is detected; it may be
\emph
{
handled
}
by the surrounding code block or
by any code block that directly or indirectly invoked the code block
where the error occurred.
\index
{
exception
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment