我正在使用python中的基于文本的RPG游戏,我有一个跟踪时间,季节随时间变化等等的课程,其中包括循环不同月亮周期( 28月亮,全,新等......就像在现实世界中一样)。类Date_Time()的 init 函数包含语句self.moon_state = 0,但我编写的用于测试与月亮相关的一些方法的函数返回错误:&#34 ; 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): """使月亮前进给定数量的状态,将其包裹到0 达到28(月亮状态从0到27)"""
self.moon_state = self.moon_state + days_passed
while self.moon_state >= 28:
self.moon_state = self.moon_state - 28
我很感激任何建议。这个bug对我来说没什么意义,就像bug一样,变量存在,但是解释器似乎忽略了它。
答案 0 :(得分:4)
很简单,你有语法/拼写错误。
它应该是__init__
而不是__inti__
解释器使用__inti__
方法没有问题,但是在创建类的实例时没有任何内容被初始化,因为解释器找不到__init__
方法