用語について - オブジェクトは変数や関数をまとめたもの - クラス : オブジェクトの設計図 - インスタンス : クラスを実体化したもの

オブジェクトという枠組み(クラス)を作ってそれに実体を与える(インスタンス)解釈

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でこういう書き方もできるのかという備忘録になったと考える



Published

10 June 2015

Tags