另一个modu的Python类变量作用域

2024-05-14 23:24:36 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,这是一个有点不同的问题,我已经能够在网站上找到。你知道吗

我是新来的。4周前刚开始编程。我正在努力学习python,所以我现在正在做一个基于文本的游戏。你知道吗

所以我有一个叫做UseAction的类。该类有两个变量链接回另一个模块中的类似变量。你知道吗

这个想法是,当一个项目被使用时,游戏会跟踪你的进度,并允许你访问以前锁定的新东西。你知道吗

我通过使用一个事件变量和一个作为列表的前提条件变量来实现这一点。所以聚变切割器有一个events.metal\u bar\u移除一开始是假的。逃生舱的先决条件是[events.metal\u bar\u移除](可能有需要多个prereqs的项目,所以我列了一个清单)。问题是,在我使用fusion cutter之后,我让程序通过fusion cutter访问它来打印变量,它会说True,应该是,但是如果我通过escape pod的prereq访问它,它会说false。我已经检查了三遍拼写,以确保两处的拼写相同。你知道吗

我将在此处发布相关代码片段:

class UseAction(object):
    def __init__(self, item, event = None, prerequisites = []):
        self.item = item
        self.event = event
        self.prerequisites = prerequisites

fusion_cut_item = fusion_cutter
fusion_cut_event = events.metal_bar_removed
fusion_cutter_act = UseAction(fusion_cut_item, event = fusion_cut_event, prerequisites = [])

escpod_item = escape_pod
escpod_prereq = [events.metal_bar_removed]
escape_pod_act = UseAction(escpod_item, event = None, prerequisites = escpod_prereq)

从事件文件:

metal_bar_removed = False

我没有包括整个班级,因为它有大约21个论点。 请让我知道,如果有一些代码,我已经遗漏了,可能是有用的解决问题。你知道吗

我设置的检查可以更改metal\u bar\u removed变量的布尔标志。我在使用fusion cutter之前和之后都进行了检查,当我从fusion cutter对象打印它们时,它们会发生变化,但如果我从escape pod打印,它会显示false。你知道吗

谢谢你们的帮助!你知道吗

PS我想我的题目写得很糟糕,对不起!你知道吗


Tags: selfeventbareventsitempodcutterfusion

热门问题