くろまる社長 「python」学習日記 2020-07-07

 

2020-07-07

 

今日やったことリスト(座学)

 

 

学んだこと

  • インスタンスメソッドとは
    通常のメソッド
  • クラスメソッドとは
    クラスをインスタス化しなくても呼び出すことができるメソッド
  • スタティックメソッド
    クラスをインスタン化しなくても呼び出すことができる
    インスタンス化しても呼び出し可能
    ※ただ、selfや、clsなどのインスタンスやクラスを表す変数がいらない

調べたこと

 

 

今日やったコード一覧

  • instnce_method.py
    class Instance_methodClass:
    def __init__(self, x, y):
    self.x = x
    self.y = y
     
    #インスタンスメソッド
    def hoge_instacemethod(self, display_x = True, display_y = True):
    if display_x:
    print('x is {}'.format(self.x))
    if display_y:
    print('y is {}'.format(self.y))
    instance_classmethod = Instance_methodClass(100,50)
    instance_classmethod.hoge_instacemethod(display_x = False)
    #instance_classmethod.hoge_instacemethod(display_x = 0)

    """bool型はint型のサブクラス
    bool型、Trueは、1 Falseは、0と等価"""


  • instance_classmethod.py
    import datetime
    class DateClass:
    def __init__(self, year, month, day):
    self.year = year
    self.month = month
    self.day = day
     
    #クラスメソッド
    @classmethod
    def date_classmethod(cls, date_fiff = 0):
    tody = datetime.date.today()
    d = tody + datetime.timedelta(days = date_fiff)
    return cls(d.year, d.month, d.day)

    #インスタンス化しないで呼び出し
    date_class0 = DateClass.date_classmethod()
    print(date_class0.year, date_class0.month, date_class0.day)

    #インスタンス化しないで呼び出し
    date_class1 = DateClass.date_classmethod(-10)
    print(date_class1.year, date_class1.month, date_class1.day)

    date_class2 = DateClass(2020,7,2)
    print(date_class2.year, date_class2.month, date_class2.day)
  • instnce_staticmethod.py
    class Staticmethod_Class:

    #スタティックメソッド
    def hoge_staticmethod(x, y):
    return x + y

    #インスタンス化しないで呼び出し
    print(Staticmethod_Class.hoge_staticmethod(10,100))


    #インスタンス化からも呼び出せる
    static_class = Staticmethod_Class()
    print(Staticmethod_Class.hoge_staticmethod(100,1000))