来自另一个模块的Python类变量范围

时间:2014-07-10 21:35:38

标签: python class variables boolean

所以这是一个与我在网站上找到的有点不同的问题。

我很新。刚开始编程4周前。我正在通过学​​习python的方式努力工作,所以我现在正在制作一个基于文本的游戏。

所以我有一个名为UseAction的类。该类有两个变量链接回另一个模块中的类似变量。

这个想法是,当使用某个项目时,游戏会跟踪您的进度,并允许您访问之前锁定的新内容。

我通过使用事件变量和作为列表的先决条件变量来实现此目的。因此,融合切割器具有events.metal_bar_removed事件并且以False开始。 Escape pod具有[events.metal_bar_removed]的先决条件(可能存在需要多个先决条件的项目,因此我将其作为列表)。问题是,在我使用融合切割器之后,我让程序通过融合切割器访问它来打印变量,并且它应该是True,但如果我通过逃生舱的先决条件访问它,则表示假。我有三重检查拼写,以确保两个点都相同。

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

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_bar_removed变量的布尔标志的检查确实有效。我在使用融合切割器之前和之后检查过,当我从融合切割器对象打印它们时它们会发生变化但是如果我从逃生舱打印出来它会说是假的。

感谢您的帮助!

PS我认为我的问题标题措辞非常糟糕,抱歉!

0 个答案:

没有答案