Pythonでオブジェクト指向 パイソン
用語について - オブジェクトは変数や関数をまとめたもの - クラス : オブジェクトの設計図 - インスタンス : クラスを実体化したもの
オブジェクトという枠組み(クラス)を作ってそれに実体を与える(インスタンス)解釈
object_test.py
#! /usr/bin/python
#-*- coding:utf-8 -*-
# クラス
class Person(object):
def __init__(self,name): # 最初に実行される関数
self.name = name
def greet(self):
print "my name is %s"%self.name
#main
bob = Person("Bob") # インスタンスの作成
print bob.name
bob.greet()
tom = Person("Tom") # インスタンスの作成
tom.greet()
[実行結果]
Bob
my name is Bob
my name is Tom
クラスの継承
クラス継承について
object_test2.py
#!/usr/bin/env python
#coding:utf-8
# クラス
class Person(object):
def __init__(self,name): # 最初に実行される関数
self.name = name
def greet(self):
print "my name is %s"%self.name
class SuperPerson(Person):
def shout(self):
print "%s is SUPER!!" % self.name
#main
bob = Person("Bob") # インスタンスの作成
tom = SuperPerson("Tom") # インスタンスの作成
print bob.name
bob.greet()
tom.shout()
[実行結果]
Bob
my name is Bob
my name is Tom
Tom is SUPER!!
ここではPersonのクラスを保持したままSuperPersonのクラスを作成しているので Tomは greet() と shout() の両方を使える
しかし処理スピードはJavaの方が圧倒的に上なので
Pythonでこういう書き方もできるのかという備忘録になったと考える