クラスメソッドの第1引数はclsで、クラス自身を示す
import datetime class Reserve: dt_now = datetime.datetime.now() def __init__(self, dep, dest, time): self.dep = dep self.dest = dest self.time = time def plan(self): print(f"予約内容は、出発地:{self.dep}、目的地:{self.dest}、出発時間:{self.time}です") @classmethod def clock(cls): print(f"只今の時刻は、{cls.dt_now}です") osakaTrip = Reserve("東京","大阪","16時") osakaTrip.plan() Reserve.clock()
$ python3 test.py
予約内容は、出発地:東京、目的地:大阪、出発時間:16時です
只今の時刻は、2023-11-16 02:47:03.822162です
print(f”只今の時刻は、{dt_now}です”) とすると、以下のようにエラーになります。
Traceback (most recent call last):
File “/home/vagrant/dev/test/test.py”, line 23, in
Reserve.clock()
File “/home/vagrant/dev/test/test.py”, line 18, in clock
print(f”只今の時刻は、{dt_now}です”)
NameError: name ‘dt_now’ is not defined