21 |
4行目 |
Guido van Rossam 氏は、 |
1 |
|
 |
Guido van Rossum 氏は、 |
- |
22 |
表1.1 |
ネットワークプログラミン |
1 |
|
 |
ネットワークプログラミング |
- |
29 |
PEP 10 下から2行目 |
Guido van Rossam 氏が |
1 |
|
 |
Guido van Rossum 氏が |
- |
39 |
2行目 |
com というディレクトリだけが見えあることでしょう |
1 |
日本語の部分 |
 |
com というディレクトリだけが見えることでしょう |
- |
40 |
下から3行目 |
祖結合の |
1 |
|
 |
疎結合の |
- |
43 |
1行目 |
少数部を持つ値を |
1 |
|
 |
小数部を持つ値を |
- |
45 |
1-4-14 2行目 |
Guido van Rossam は |
1 |
|
 |
Guido van Rossum 氏は |
- |
46 |
1.5 Python を使う準備 |
1-5-1 メジャープロットフォームへのインストール |
1 |
|
 |
1-5-1 メジャープラットフォームへのインストール |
- |
46 |
1-5-1 |
Widnows |
1 |
|
 |
Windows |
- |
47 |
オートコンプリートの実行サンプル |
object oct oepn ord |
1 |
openのタイポ |
 |
object oct open ord |
- |
49 |
シェルコマンドの実行 |
捜査中 |
1 |
|
 |
操作中 |
- |
51 |
1 |
PHPなどと共にに |
1 |
|
 |
PHPなどと共に |
- |
65 |
3-3-1 2行目 |
かなり大きいな値が |
1 |
|
 |
かなり大きな値が |
- |
68 |
2番目の実行例 |
# 少数点を含む実数 |
1 |
|
 |
# 小数点を含む実数 |
- |
70 |
中央のサンプルコード |
>>> math.py |
3 |
ミスタイプが残っている |
 |
(消去) |
- |
71 |
表3.3 |
rect(x) |
1 |
|
 |
rect(r, phi) |
- |
72 |
最初の実行例の下 |
実装として扱えない |
1 |
|
 |
実数として扱えない |
- |
75 |
最初のコードサンプル |
coding[:=]s*([-w.]+) |
1 |
|
 |
coding[:=]\s*([-\w.]+) |
- |
76 |
サンプルコード下 |
複合化しようとすると、 |
1 |
「復号しようとすると」でも良い |
 |
復号化しようとすると、 |
- |
81 |
スライスサンプル |
>>> x[2:-1]
[3.0, 'a', 'b', 'c'] |
2 |
|
 |
>>> x[2:-1]
[3.0, 'a', 'b'] |
- |
87 |
3-5-1 セットの操作 |
discartdメソッドを使えば |
1 |
|
 |
discardメソッドを使えば |
- |
90 |
3番目の実行例の下6行目 |
シンメトリックディッファレンス |
1 |
|
 |
シンメトリックディファレンス |
- |
91 |
1つ目のサンプルコードの下、5行目 |
disjointメソッドを |
1 |
|
 |
isdisjointメソッドを |
- |
97 |
4-1 条件文 |
空のシーケンス([]や()や[]) |
1 |
|
 |
空のシーケンス(""や()や[]) |
- |
97 |
4-1 条件文 |
__nonezero__ メソッドが |
1 |
|
 |
__bool__ メソッドが |
- |
98 |
4,5行目 |
条件分 |
1 |
|
 |
条件文 |
- |
101 |
4.2 比較演算子 |
>>> 0 < 1 < 2 < 3
True
|
1 |
このサンプルコードはあまりにひどいと思う... |
 |
>>> x = 2
>>> 0 < x < 3
True
>>> x = 4
>>> 0 < x < 3
False
|
- |
102 |
4-2-1等価 |
文字列も度同様に同じ文字列 |
1 |
|
 |
文字列も同様に同じ文字列 |
- |
109 |
4-5 (2箇所) |
替わりに |
1 |
|
 |
代わりに |
- |
110 |
4-6 4行目 |
try のブロックに既述し、 |
1 |
|
 |
try のブロックに記述し、 |
- |
121 |
5-2 二つ目のサンプルコード |
kwargs = {'arg3': 3, 'arg4': 4} |
1 |
|
 |
kwargs = {'arg4': 4, 'arg5': 5} |
- |
122 |
2行目 |
関数append_number()の戻り値を見ると、 |
1 |
|
 |
上の例で、関数append_number()の戻り値は、 |
- |
123 |
サンプルコード内 |
def spam(*args, defaultarg="省略時の値"):
... |
1 |
|
 |
def spam(*args, default_arg="省略時の値"):
... |
- |
126 |
1行目 |
この例のように |
1 |
|
 |
リスト5.4のように |
- |
129 |
5-8-4 サンプルコード内 |
>>> for value in generator: |
1 |
()がないと
TypeError: 'function' object is not iterable
が発生します。 |
 |
>>> for value in generator(): |
- |
131 |
サンプルコード内 |
def pick_odd(seq):
return filter(lambda item: item % 2 == 0, seq) |
1 |
|
 |
def pick_odd(seq):
return filter(lambda item: item % 2 == 1, seq) |
- |
131 |
先頭のサンプル |
item %2 == 1 |
1 |
|
 |
item % 2 == 1 |
- |
137 |
1行目 |
新しいインスタンスが帰ってきます |
1 |
|
 |
新しいインスタンスが返ってきます |
- |
140 |
サンプルコード内 |
# Base.spam() をオーバーロード |
1 |
|
 |
# Base.spam() をオーバーライド |
- |
146 |
6-9-3:二つ目の小タイトルと表6.2のタイトル |
演算子に対応するメソッド |
1 |
|
 |
演算子の左項に対応するメソッド |
- |
147 |
表6.4 見出し行 |
累積代入分 |
1 |
|
 |
累積代入文 |
- |
153 |
サンプルコード内 |
delete spam.ham |
1 |
|
 |
del spam.ham |
- |
153 |
サンプルコード2つ目のブロック |
self.__ham == value |
1 |
|
 |
self.__ham = value |
- |
154 |
6-14-1 サンプルコード内 |
class Spam:: |
1 |
|
 |
class Spam: |
- |
158 |
3-4行目 |
isinstance(Spam, Food)やisinstance(Ham()), Food)の結果は |
1 |
|
 |
isinstance(Spam(), Food)やisinstance(Ham(), Food)の結果は |
- |
158 |
2行目 |
Spam`` と |
1 |
|
 |
Spam と |
- |
158 |
5行目 |
abstructmethod()デコレータ |
1 |
|
 |
abstructmethodデコレータ |
- |
161 |
1行目 |
メンバのみが |
1 |
|
 |
全てのメンバが |
- |
161 |
最後の行 |
ディレクトリ名を「:」を区切り |
1 |
|
 |
ディレクトリ名を「:」で区切り |
- |
162 |
2行目 |
例えば、
python/usr/bin/spam.py として Python を起動した場合 |
1 |
コマンド python の後ろにスペースがない |
 |
例えば、
python /usr/bin/spam.py として Python を起動した場合 |
- |
163 |
3行目 |
指定されたものします。 |
1 |
|
 |
指定されたものとします。 |
- |
164 |
図7.1 フォルダ構成 |
...
|--subpackage_spam
|-- subpackage_ham.py
|-- subpackage_egg.py
|
1 |
subpackage_spam ディレクトリに __init__.py がない |
 |
...
|--subpackage_spam
|-- __init__.py
|-- subpackage_ham.py
|-- subpackage_egg.py
|
- |
164 |
7-5 3行目 |
ディレクトリでですが、 |
1 |
|
 |
ディレクトリですが、 |
- |
165 |
3段落目の2行目 |
from . iport egg |
1 |
|
 |
from . import egg |
- |
166 |
名前空間パッケージのサンプルコード |
sys.path.add('package_dir/project1')
sys.path.add('package_dir/project2')
|
1 |
|
 |
sys.path.append('package_dir/project1')
sys.path.append('package_dir/project2')
|
- |
167 |
モジュールメンバの追加、削除のサンプルコード |
del math.f |
1 |
|
 |
del math.spam |
- |
168 |
8行目 |
圧縮してspam.zipファイルを作成して |
1 |
|
 |
圧縮したspam.zipファイルを作成して |
- |
169 |
8-1 インタラクティブシェル内 |
>>>> dumb_print.print("Spam!") |
1 |
|
 |
>>> dumb_print.print("Spam!") |
- |
174 |
8-4 4,6,10,12行目 |
開放 |
1 |
|
 |
解放 |
- |
175 |
2-3行目 |
開放 |
1 |
|
 |
解放 |
- |
184 |
リスト9.2 http_loader1.py |
def get_filename(self, filename): |
1 |
|
 |
def get_filename(self, fullname): |
- |
192 |
表9.3のExceptionの説明 |
通常の例外規定クラス |
1 |
|
 |
通常の例外基底クラス |
- |
194 |
表9.5 キャプション |
インタプリタ起動時の Warnig 設定オプション |
1 |
|
 |
インタプリタ起動時の Warning 設定オプション |
- |
197 |
zip(*iterables) |
複数の iterable を受け取って、
各 iterable の同じ順序のオブジェクトを
タプルにつめて返します。 |
1 |
誤りではないが、map/filter の説明で「yield で返します」と説明している、zip 関数もジェネレーターを返すので同様に説明した方が誤解がなくて良いように思う |
 |
複数の iterable を受け取って、
各 iterable の同じ順序のオブジェクトを
タプルにつめて yield で返します。 |
- |
206 |
10-1-5 サンプル2 |
>>> b = b'あ' |
1 |
bytes型は非ASCII文字を指定できない |
 |
>>> b = b'\xe3\x81\x82' |
- |
207 |
リスト10.1 count_word.py |
if line.indexof(search) > -1:
|
1 |
indexof って何と間違えたんだろう?
list.index かな、operator.indexOf もあるのか ... |
 |
if line.find(search) > -1:
|
- |
207 |
10-1-5 サンプル3 |
>>> b = b'あ'
>>> s = str(b)
>>> print(s)
b'あ' |
1 |
|
 |
>>> b = b'\xe3\x81\x82'
>>> s = str(b)
>>> print(s)
b'\xe3\x81\x82' |
- |
212 |
10-3-2 文字列検索ユーティリティの最終行 |
-encodin オプションも追加しています。 |
1 |
|
 |
-e (--encoding) オプションも追加しています。 |
- |
218 |
10-4-5のサンプルコード内 |
inport pickle |
1 |
|
 |
import pickle |
- |
222 |
4行目 |
オプションをを含め、 |
1 |
|
 |
オプションを含め、 |
- |
227 |
11-1-1 1行目 |
acyncore モジュールの |
1 |
|
 |
asyncore モジュールの |
- |
228 |
リスト11.1の下1行目 |
acyncore.dispatcher を継承します。 |
1 |
|
 |
asyncore.dispatcher を継承します。 |
- |
231 |
1行目 |
class EchoView:
|
1 |
ウェブ上のサンプルは正しいが書籍の表記が間違っている.tkinter.Frameを継承していない場合__init__関数1行目で "TypeError: object.__init__() takes no parameters" とエラーが送出される. |
 |
class EchoView(tkinter.Frame):
|
- |
234 |
11-3-1 チャットサーバ: server.py の handle_accepted のコード内 |
handler = EchoHandler(sock) |
1 |
selfが右にあるのは正しい。
(2014/8/30現在)ネット上で配布されているサンプルコードもselfがないため、そのまま実行するとクライアントがサーバへアクセスするタイミングでエラーが発生する。同様に配布されている12章のサンプルコードも同じく第2引数にselfがない。 |
 |
handler = EchoHandler(sock, self) |
- |
234 |
欄外の注2 |
http://gihyo.jp/book/2010/978-4-7741-5539-5/support |
1 |
2010→2013 |
 |
http://gihyo.jp/book/2013/978-4-7741-5539-5/support |
- |
236 |
12-1 配布ための準備 |
12-1 配布ための準備 |
1 |
|
 |
12-1 配布のための準備 |
- |
237 |
12-1-2 プロジェクトを定義する, 5行目 |
名前空間パッケージやパッケージ名をもとに決めるのがわかり安いでしょう |
1 |
|
 |
名前空間パッケージやパッケージ名をもとに決めるのがわかり易いでしょう |
- |
237 |
最後の行 |
myproject-0.0.tar.gz |
1 |
|
 |
ppjp.chat-0.0.0.tar.gz |
- |
238 |
setup.py のサンプルコード |
from setuptools import setup, find_packages |
1 |
find_packages の注意点が説明されていて、サンプルコード中では使っていないのだからインポートする必要がない
240 ページのサンプルコードも同じ |
 |
from setuptools import setup |
- |
238 |
12-1-2 tar の実行例 |
tar tvf sdist/ppjp.chat-0.0.0.tar.gz |
1 |
|
 |
tar tf dist/ppjp.chat-0.0.0.tar.gz |
- |
239 |
12-2-2 READMEを書く |
ppjp.chat |
1 |
続くパッケージの概要もREADME.txtの一部であり、背景が灰色になっていなければならないが、白になってしまっている。 |
 |
ppjp.chat
================= |
- |
244 |
■配布物をアップロード, 2行目 |
uploadサブコマンドのと同時に |
1 |
|
 |
uploadサブコマンドと同時に |
- |
257 |
13-6 第2段落 1行目 |
noseやpy.testなどの |
1 |
|
 |
noseやpytestなどの |
- |
260 |
2行目 |
geeting関数 |
1 |
|
 |
greeting関数 |
- |
260 |
リスト14.1 basic_middleware.py, 下から6行目 |
m = re.match(r'Basic\s+(?P<basic_auth>\w+)', auth)
|
1 |
\w+ の指定では、Base64エンコードの special chars と padding にマッチしない |
 |
m = re.match(r'Basic\s+(?P<basic_auth>[a-zA-Z0-9+/=]+)', auth)
|
- |
264 |
14-2-2WebOb: Requestオブジェクトからパラメータを取得する例 |
values = request.params.get_all('values') |
1 |
1) get_allでなくgetall
2) 前例(form_handling.py)では 'value' というパラメータから値を取得していたので、それにあわせる |
 |
values = request.params.getall('value') |
- |
267 |
base.html を継承するサンプル |
<% extends "base.html" %>
<h1>{{ message }}</h1>
|
1 |
|
 |
{% extends "base.html" %}
{% block body %}
<h1>{{ message }}</h1>
{% endblock %} |
- |
267 |
14-2-5 base.htmlのサンプルの4行目 |
.body { |
1 |
.bodyだと「"body"というclassをもつ要素」が対象になってしまう。 |
 |
body { |
- |
270 |
pythonパッケージの階層作成 |
$ touch -p py3wiki/__init__.py
$ touch -p py3wiki/__main__.py |
1 |
touchに-pというオプションはない |
 |
$ touch py3wiki/__init__.py
$ touch py3wiki/__main__.py |
- |
271 |
14-3-1 __main__.pyのサンプルコード |
from . import main
main() |
1 |
地べたにmainの呼び出し書いてると、importされただけて動いてしまう。とくに、テスト走らせたときにimportされてしまうのでテストが進まなくなってしまう。 |
 |
from . import main
if __name__ == '__main__':
main() |
- |
273 |
14-3-3 DB接続処理の追加サンプルコード |
engine = sa.create_engine('sqlite:///{dir}/wiki.db'.format(dir=os.getcwd())) |
1 |
osがでてくるのは初めてなので、行頭にimport osが書かれていたほうが分かりやすいと思われます |
 |
import os
...
engine = sa.create_engine('sqlite:///{dir}/wiki.db'.format(dir=os.getcwd())) |
- |
275 |
14-3-7 page_viewの作成サンプル |
def page_view(request):
page_name = request.urlvars['page_name']
edit_url = request.environ['webdispatch.urlgenerator'].generate('page_edit', page_name=page_name)
try:
page = DBSession.query(Page).filter(Page.page_name==page_name).one()
tmpl = env.get_template('page.html')
return tmpl.render(page=page, edit_url=edit_url)
except NoResultFound:
return HTTPFound(location=edit_url) |
1 |
ここの段階で提示するサンプルコードとしては、このぐらいが適切と思われます。ちなみにedit_urlは14-3-9で、例外処理は14-3-10で追加されます。 |
 |
@wsgify
def page_view(request):
page_name = request.urlvars['page_name']
page = DBSession.query(Page).filter(Page.page_name==page_name).one()
tmpl = env.get_template('page.html')
return tmpl.render(page=page) |
- |
276 |
14-3-9 編集画面ののサンプル |
def page_view(request):
(略)
tmpl = env.get_template('page.html') |
1 |
Wikiの編集画面はpage_edit_formのはず。 |
 |
def page_edit_form(request):
(略)
tmpl = env.get_template('page_edit.html') |
- |
285 |
ページ下半分の dtype属性説明用サンプル対話シェルセッションのコメント |
...
#配列の型の int ではなく float になる
...
... b
array([[1. , 2. , 3. ], [1. , 2. , 3.3]]) |
1 |
配列の型”の”→”は”
... c
の部分はP286の部分です。 |
 |
...
#配列の型は int ではなく float になる
...
... c
array([[1. , 2. , 3. ], [1. , 2. , 3.3]]) |
- |
288 |
numpy 数学関数説明の対話セッション |
... numpy.sin(math.pi/2)) |
1 |
|
 |
... numpy.sin(math.pi/2) |
- |
290 |
リスト15.1 numpy1.py, 最後の行 |
if __name__ == '__main__':
main(): |
1 |
|
 |
if __name__ == '__main__':
main() |
- |
293 |
図15.2 タイトル |
quad(rgt1, 0, 10)の検算 |
1 |
|
 |
quad(ret1, 0, 10)の検算 |
- |
299 |
リスト15.8 |
# 最初に作った配列と同じ範囲を 200 分割した配列を作成 |
1 |
|
 |
# 最初に作った配列と同じ範囲を 180 分割した配列を作成 |
- |
302 |
weave.inline, ローカル変数参照のサンプル |
weave.inline(source, ['x', 'y']) |
1 |
|
 |
weave.inline(code, ['x', 'y']) |
- |
302 |
「C++側から値を返す」, 第2段落 |
...C++側で暗黙に定義されるPyObject* 型の変数ret_valueに値を設定します。 |
1 |
|
 |
...C++側で暗黙に定義されるPyObject* 型の変数return_valに値を設定します。 |
- |
303 |
「C++側から値を返す」, サンプルコード |
code = '''
ret_value = PyInt_FromLong(x + y);
'''
...
ret = weave.inline(source,['x', 'y']) |
1 |
|
 |
code = '''
return_val = PyInt_FromLong(x + y);
'''
...
ret = weave.inline(code,['x', 'y']) |
- |
303 |
「C++側から値を返す」, サンプルコード |
# 返値は ret_value 変数に代入する |
1 |
|
 |
# 返値は return_val 変数に代入する |
- |
312 |
15-4-1 グラフを定義する, グラフのデータを渡すサンプルコード |
g = nx,Graph([(1, 2), (2, 3), (3, 4)]) |
1 |
ドット(.)がカンマ(,)になってしまっている |
 |
g = nx.Graph([(1, 2), (2, 3), (3, 4)]) |
- |
313 |
■nodeやedgeの追加, p313最初の段落 |
edgeを追加する場合は、同様にGraphクラスのメソッドであるadd_edgeかadd_edge_fromを使います。 |
1 |
|
 |
edgeを追加する場合は、同様にGraphクラスのメソッドであるadd_edgeかadd_edges_fromを使います。 |
- |
341 |
16-3-7 オブジェクトに対する操作, 2番目のスクリプト |
>>> for i in range(30):
... |
1 |
math モジュールを使用しているので、最初に import を明示的に見せてあげるほうが better |
 |
>>> import math
>>> for i in range(30):
... |
- |
344 |
第2段落, 2文目 |
この館数の返値は... |
1 |
|
 |
この関数の戻り値は... |
- |
351 |
4行目 |
Python らいしいシンプルなコードを記述できます。 |
1 |
|
 |
Python らしいシンプルなコードを記述できます。 |
- |
352 |
POST メソッドの処理の2行前 |
さらに HTTP ヘッダーにも HTTP ヘッダーにも文字コードが指定されていない |
1 |
「HTTP ヘッダーにも」が重複 |
 |
さらに HTTP ヘッダーにも文字コードが指定されていない |
- |
353 |
requests モジュールのファイルアップロードのサンプルコード |
files = {"attachment": ("myfile.xlsx", open("myfile.xlsx", "rw"))} |
1 |
ファイルオープンのモードが違う? |
 |
files = {"attachment": ("myfile.xlsx", open("myfile.xlsx", "rb"))}
|
- |
354 |
■import処理, コード例, 3行目 |
except ImortError:
|
1 |
|
 |
except ImportError:
|
- |
357 |
最後の段落 |
リスト17.9のコードは、p要素でidにcopyrightが指定されている要素を検索します。 |
1 |
該当するコードには番号が振られていない |
 |
次のコードは、p要素でidにcopyrightが指定されている要素を検索します。 |
- |
364 |
stanza_handler の9行目 |
event_handler と違い
stanza_handler は "subscibe" や "unsubscribe" のように |
1 |
|
 |
event_handler と違い
stanza_handler は "subscribe" や "unsubscribe" のように |
- |
368 |
3行目 |
参加命令を発効しています。 |
1 |
|
 |
参加命令を発行しています。 |
- |
371 |
下から3行目 |
あまり替わりませんので |
1 |
|
 |
あまり変わりませんので |
- |
371 |
18-1-2 redis, リスト18.2 redis1.py |
#(4)リストからの値の削除
client.lrem('mylist', 0, 'eggs') |
1 |
redis-py の lrem メソッドの引数は、lrem(name, num, value)ではなく、lrem(name, value, num)。また、num のデフォルトは0。 |
 |
#(4)リストからの値の削除
client.lrem('mylist', 'eggs', num=0)
|
- |
372 |
オブジェクトの生成 |
でmemcache.Redisオブジェクトを作成しています |
1 |
|
 |
でredis.Redisオブジェクトを作成しています |
- |
377 |
■データベースへの接続, サンプルコード, 1行目 |
from sqlalchmey import create_engine |
1 |
|
 |
from sqlalchemy import create_engine |
- |
377 |
■データベースへの接続 |
データベースのへの接続は |
1 |
|
 |
データベースへの接続は |
- |
379 |
最初のコードサンプル |
return "<MailAddress(%s, %s>" % (self.name, self.address) |
1 |
特に害は無いけど |
 |
return "<MailAddress(%s, %s)>" % (self.name, self.address) |
- |
384 |
5行目 |
本稿執筆時点では Python3 系で
動作する Django はリリースされていませんし、 |
1 |
誤植ではないけど、第2刷で補足されると良さそう |
 |
発売前の 2013-02-26 に
Python3 対応の Django 1.5 が
リリースされてしまいましたね (^ ^;;
https://www.djangoproject.com/weblog/2013/feb/26/15/
https://docs.djangoproject.com/en/dev/releases/1.5/ |
- |
386 |
■シリアライズ, pickleの場合のサンプルセッション |
pikled_data1=pickle.dumps(data1) |
1 |
|
 |
pickled_data1=pickle.dumps(data1) |
- |
389 |
1行目 |
$ pssh -h hosts.txt -o /tmp -o /tmp -A -- uname -a |
3 |
|
 |
$ pssh -h hosts.txt -o /tmp -A -- uname -a |
- |
401 |
2行目 |
1つ目および 2つ目の記述例はとても冗長です。reStructredText を docutils 単体で使うのであればこれしかないのですが、sphinx 上であれば3つ目の list-table を用いるのが簡単です。 |
1 |
|
 |
1つ目および 2つ目の記述例は、パディングをする必要があるなどとても冗長です。
ソース上の見た目がテーブルではなくなってしまいますが、記述するのであれば3つ目のlist-tableを用いるのが簡単です。 |
- |
402 |
autodoc の説明 |
conf.py の設定がない。 |
1 |
誤植ではないけど、autodoc が標準でもつ拡張機能と説明しているので、設定は必要であることを補足してあげた方が親切だと思う。
|
 |
conf.py に以下の設定が必要。
extensions = ['sphinx.ext.autodoc'] |
- |
404 |
autodoc でドキュメントを生成するサンプル |
.. autodoc:: sample
:members:
|
1 |
autodoc というディレクティブは存在しなくて、
automodule や autofunction の誤りだと思う |
 |
.. automodule:: sample
:members:
|
- |
404 |
autodoc の docstring を持たないオブジェクトを追加するサンプル |
.. autodoc:: sample
:members: InModuleClass, ..., func_without_docstring |
1 |
py32+sphinx113 でのみ確認。
docstring をもたないオブジェクトは :members: に追加するだけでなく、
:undoc-members: を追加しないと出力されないみたい。 |
 |
.. automodule:: sample
:members: InModuleClass, ..., func_without_docstring
:undoc-members: |
- |
451 |
右 A 12行目 |
assertメソッド |
1 |
P115にはassertメソッドの記述はない。
assertメソッド一覧は誤字ではないので大丈夫。 |
 |
assert文 |
- |
454 |
左 M 9行目 |
33 432 |
1 |
|
 |
33, 432 |
- |
457 |
右 か行 17行目 |
クラスメソッ |
1 |
|
 |
クラスメソッド |
- |
457 |
左 W 2行目 |
Web Server Gateway Interface (WSG) |
1 |
|
 |
Web Server Gateway Interface (WSGI) |
- |
460 |
下から5行目 |
所謂エンたエンタープライズの |
1 |
|
 |
所謂エンタープライズの |
- |
|  |