プログラム1.

def make_cmd(i):
  return lambda : buff.set("button{} pressed".format(i))

button = Tkinter.Button(root, text = "Button{}".format(i), command = make_cmd(i))

プログラム2.

def make_cmd(i):
  return buff.set("button{} pressed".format(i))

button = Tkinter.Button(root, text = "Button{}".format(i), command = make_cmd(i))

1 の場合はうまく動作するのですが、2 は button への代入でエラーが出てしまいます。
1 の返り値を表示すると <function <lambda> at 0xb714adbc>、2 は none でした。
なぜ、2 は none になるのですか?