在函数名中使用变量

时间:2017-10-27 08:18:27

标签: python python-3.x

在我的课堂上,我们正在进行文字冒险,而我只是想在房间之间走动。到目前为止,我做了一个名为" Room"的课程。

class Room(object):
    def __init__(self,name):
        self.name = name

以及一些可以在子类之间移动的房间。

class Backyard(Room):
global current

def __init__(self):
    self.name = "Backyard"

def choose(self,choice):
    if "north" in choice:
        current = kitchen
    else:
        print("You cannot go that way")
    return current

class Kitchen(Room):
    global current

    def __init__(self):
        self.name = "Kitchen"

    def choose(self,choice):
        if "south" in choice:
            current = yard
        else:
            print("You cannot go that way")
        return current

yard = Backyard()
kitchen = Kitchen()

现在,为了运行实际游戏,我有了这个。

run = True
current = yard
show_yard

while run:
    choose(input(">>> ")
    show_current

show_yard函数只打印出那个房间(院子)的描述,但是当我运行游戏时,我希望能够使用show_current,这样无论变量是什么'当前'设置为,它会读取该描述,但它会给我一个错误,因为没有名为' show_current'。

的功能。

我想知道在调用函数时是否有某种方法可以插入变量,这样我就不必编写一大堆代码来解决一些简单易行的问题。感谢。

1 个答案:

答案 0 :(得分:1)

如果您向show()添加Room方法,则可以在其子类的每个实例上调用它:

class Room(object):
    def __init__(self,name):
        self.name = name
    def show(self):
        print(self.name)