我在学习状态模式的时候
class state:
def program(self, h):
pass
class morning(state):
def program(self, h):
if h.hour < 12:
print("精力充沛")
else:
h.setstate(noon())
h.program()
class noon(state):
def program(self, h):
if h.hour < 13:
print("午休")
else:
h.setstate(afternoon())
h.program()
class afternoon(state):
def program(self, h):
if h.hour < 18:
print("下午还行")
else:
h.setstate(evening())
h.program()
class evening(state):
def program(self, h):
if h.finish:
h.setstate(go_home())
h.program()
elif h.hour < 21:
print("加班")
else:
h.setstate(sleep())
h.pregram()
class go_home(state):
def program(self, h):
print("下班回家")
class sleep(state):
def program(self, h):
print("睡觉")
class work:
state = morning()
finish = False
hour = 8
def setstate(self, state):
self.state = state
def program(self):
self.state.program(self)
if __name__ == "__main__":
a = work()
a.hour = 18
a.finish = True
a.program()
发现work类的program函数里的self.state.program的括号里必须要有self,没有的话就报错,这个self是什么意思,实在搞不懂,希望各位可以给解答一下,感谢