開発環境
- 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 コメント:
コメントを投稿