My Notes

統計学とかR(R言語)とかPython3の覚え書きとか走り書きとか。 座右の銘にしたい: All work and no play makes Jack a dull boy.

Python3 class(クラス) my テンプレ

Python3コード

文字列の場合

#!/usr/bin/env python3


"""(docstring)
"""


class Person:
    """(docstring)
    """
    def __init__(self, name):
        """(docstring)
        """
        self.name = name
        print('init')

    def hi(self):
        """(docstring)
        """
        print('Hi ' + self.name + '.')

    def see_ya(self):
        """(docstring)
        """
        print('See ya ' + self.name + '.')

if __name__ == '__main__':
    person = Person('Guido')
    person.hi()
    person.see_ya()

出力

init
Hi Guido.
See ya Guido.

数値の場合

#!/usr/bin/env python3


"""(docstring)
"""


class Cube:
    """(docstring)
    """
    def __init__(self, x, y, z):
        """(docstring)
        """
        self.x = x
        self.y = y
        self.z = z
        print('init')

    def calc_cube(self):
        """(docstring)
        """
        res = self.x * self.y * self.z
        print(res)

if __name__ == '__main__':
    cube = Cube(2, 2, 2)
    cube.calc_cube()


#
# 個人的には、どうでもいい話だと切り捨てたいんだが、
# pylintの
# Too few public methods というメッセージが気になるなら

# https://stackoverflow.com/questions/14027417/what-does-pylints-too-few-public-methods-message-mean

# の質問、答え、それに対する反論が参考になると思われる。
#
# Pythonは、Guidoが言っているように、データ構造を小さく保つほうがいい。
# クラスも不要なら、関数だけにしたいところだ。
# とくだん、クラスが必要でないなら、関数だけにしたい。
# というのは、クラスを作り出すと、それだけでデータ構造が複雑になり、テストをするのも面倒になるからだ。
# ということは、バグが入り込みやすくなるということでもある。
# クラスを作り始めると、それだけでデータ構造が複雑になるだけでなく、
# さらにカッコイイことをやりたくなる。
# カッコイイことは、能力的にできたほうがいいんだが、敢えてやらないカッコよさがのほうが好きだ。
#
# 個人の場合、最終的には、すべて好みの問題だ。
#

出力

init
8