Python无法识别类参数的存在
我正在用Python开发一个基于文本的角色扮演游戏,里面有一个类用来跟踪时间、季节变化等等。这个类还会循环不同的月相(比如28天的月相、满月、新月等等,就像现实世界一样)。在这个类Date_Time()的init函数中,我设置了一个变量self.moon_state = 0,但我写的一个测试月相相关方法的函数却返回了一个错误:“AttributeError: 'Date_Time'对象没有属性'moon_state'”。以下是init函数的代码:
def __inti__(self, environment, season=Spring()):
#### Objects ####
self.season = season
self.environment = environment
self.weather = environment.weather
self.player = environment.player
#### time ####
self.time_of_day = 0
self.day_of_season = 0
self.year = 0
self.moon_state = 0
这是测试代码:
for k in range(50):
date_time.cycle_moon(1)
print("\n ---- test moon", k + 1, "------------")
print("Moon state", date_time.moon_state)
date_time.check_moon()
print("Moonlight:", date_time.get_moonlight)
print(" ---- end test ------------\n")
这是正在测试的函数:
def cycle_moon(self, days_passed): """将月相推进指定的状态数量,当达到28时会回到0(月相状态从0到27)"""
self.moon_state = self.moon_state + days_passed
while self.moon_state >= 28:
self.moon_state = self.moon_state - 28
我很感激任何建议。这个错误让我感到困惑,变量确实存在,但解释器似乎就是忽略了它。
1 个回答
4
简单来说,你的代码里有个拼写错误。应该是 __init__
,而不是 __inti__
。
解释一下,虽然解释器不会对 __inti__
这个方法有问题,但当你创建这个类的实例时,它不会进行任何初始化,因为解释器找不到 __init__
这个方法。