何も誇れぬ人生の記録

『ぼくは何も誇れないのが誇りだな』沼田真佑、影裏より

# グローバル変数とローカル変数が関数内に共存するときのエラー
greeting_global = 'Hello'
def greeting():
  print(greeting_global)
  greeting_global = 'Bonjour'
  print(greeting_global)

greeting()

# Global宣言(原則として利用しない)
greeting_global = 'Hello'
def greeting():
  global greeting_global
  greeting_global = 'Bonjour'
  print(greeting_global)

greeting()
greeting_global

# 可変長引数(複数の引数をタプルとして受け取る)
def greeting(*args):
  print(args)
greeting('Hello', 'Bonjour', 'Guten Tag')
greeting_list = ['Hello', 'Bonjour', 'Guten Tag']
greeting(*greeting_list)
# ちなみに以下だとアンパックされずにリストが渡される
#greeting(greeting_list)
# 辞書型の可変長引数
def greeting(**kwargs):
  return kwargs
# アンパック
greeting_dict = {'en': 'Hello', 'fr': 'Bonjour'}
greeting(**greeting_dict)
#位置引数、初期値を持つ引数、可変長引数、辞書型の可変長引数
#それぞれを引数として受け取り、それらを表示する関数greeting
def greeting(greet, en='Hello', *args, **kwargs):
    print(greet)
    print(en)
    print(args)
    print(kwargs)

#可変長引数へ渡すリスト
greeting_list = ['Bonjour']

#辞書型の可変長引数へ渡す辞書
greeting_dict = {'de': 'Guten Tag'}

#関数greetingに引数を渡して呼び出し
greeting('Hi', 'Hello', *greeting_list, **greeting_dict)
# 変数としての関数
hoge = 0
def hoge():
  pass
type(hoge)