開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc., Emacs(Text Editor)
- プログラミング言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7)のIV部(関数)の第16章(スコープと引数)の練習問題を解いてみる。
その他参考書籍
1, 2, 3, 4, 5, 6, 7, 8.
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- x = 'spam' def func(): print(x) func() # 'spam' x = 'spam' def func(): x = 'ni!' func() print(x) # 'spam' x = 'spam' def func(): x = 'ni' print(x) func() # 'ni' print(x) # 'spam' x = 'spam' def func(): global x x = 'ni' func() print(x) # 'ni' x = 'spam' def func(): x = 'ni' def nested(): print(x) nested() func() # 'ni' print(x) # 'spam' def func(a, b, c=3, d=4): print(a, b, c, d) func(1, *(5, 6)) # 1 5 6 4 # 関数でステート情報を保持する方法 # globalを使う def func(): global x x = 'egg' func() print(x) # 'egg' # LEGBのEを使う(外側の関数の変数を使う) def func(): x = '10' def inner(): print(x) return inner f = func() f() # 10 # デフォルト引数を使う def func(a=20): print(a) func() # 20 # 関数が呼び出し側に影響を与える方法 # return文を使う def func(): return 30 print(func()) # 30 # global宣言を使う def func(): global x x = 40 x = 50 func() print(x) # 可変性オブジェクトを引数に渡す def func(a): a[1] = 100 x = [1,2,3,4,5] func(x) print(x)
入出力結果(Terminal)
$ ./sample.py spam spam ni spam ni ni spam 1 5 6 4 egg 10 20 30 40 [1, 100, 3, 4, 5] $
0 コメント:
コメントを投稿