Python无法识别类参数的存在

0 投票
1 回答
872 浏览
提问于 2025-04-18 00:15

我正在用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__ 这个方法。

撰写回答