関数とオブジェクトの特徴のちがいが、わかってきた。たぶん、合っているとおもう。
(1)関数について
まず簡単な関数を書いてみよう。
def add_print(a,b):
print(a+b)
add_print(1,2)
3
3の結果が表出しているけれど、このばあいの3は値ではない。
type(add_print(1,2))
None Type //数値は「空」(カラ)。
def add_return(a,b):
return a+b
add_return(1,2)
3
return文をつかい、値を関数に戻したばあい。print()と同様に、3が表出している。しかし、こちらは値となっている。
type(add_return(1,2))
int // 数値型になっている。
いずれにせよ、関数は値の保存ができない。
もし保存したいのなら、関数のアウトプットを変数に代入する。
add_return_variable = add_return(1,2)
add_return_variable
3
(2)オブジェクトについて
関数のばあいと同様に「足し算」について、こんどはクラスを書いてオブジェクト(インスタンス)を作っていく。
class add_object:
def __init__(self,a,b):
self.a = a
self.b = b
def add(self):
return(self.a+self.b)
add_object_instance = add_object(1,2) //インスタンスを作成する。
add_object_instance.add()
3
クラスによって作成したインスタンスには値が保存されていることが確認できた。
関数とオブジェクトは、ほかにもちがう点がある、とおもう。使い方のちがいまで、なれてきたら、やれることが、ずいぶん広がるだろうなぁ。「オブジェクト指向」が、おもしろくなってきたわ。