这是我的脚本http://pastebin.com/zgRrBX0U
作为参考,这是Zed Shaw的“学习python艰难的方式”ex36的脚本。 我试图创建一个基于塞尔达传说的第一级设计的基于文本的冒险。
但是当我开始进入程序时,我遇到了一个问题。它的工作原理是你将从主房间开始。但无论朝哪个方向走,都会有错误说。 “'int'对象不可调用。”我无法弄清楚搜索是什么意思。或者看看pydocs。任何帮助都会受到赞赏。
答案 0 :(得分:2)
您将roomBA
和roomDA
定义为函数,然后再将它们绑定到整数。当然它不起作用。
答案 1 :(得分:1)
删除第129和130行,它将起作用,正如Ignacio所说。
在Python中,“可调用”通常是一个函数。该消息意味着您正在处理一个数字(“int”),就好像它是一个函数(“可调用”),因此Python不知道该怎么做,所以它就会停止。
答案 2 :(得分:0)
def roomBA(key, life, door_open, roomBA, roomDA):
您正在此处定义名为roomBA的函数。
第129行:
roomBA = 0
在这里,您已将roomBA更改为现在的数字0。
因此,您定义的原始功能将丢失。您不再需要使用名称来调用它。
第132行:
roomCA(key, life, door_open, roomBA, roomDA)
在这里,您正在调用功能室CA.除此之外,此功能要求玩家指示方向,然后尝试调用相应的房间功能。
我键入了west,所以我们尝试调用变量roomBA引用的函数(第17行)。但是,哦,不,它不再是一个功能。它是0.因此,你错了。
发生的是你在函数名和变量名之间发生了很多冲突。当然,roomXX是代表游戏中每个房间的功能。然后,您有状态变量(目前,它们也被命名为roomXX)。看来这些变量旨在追踪您之前是否进入过房间。由于你的函数和状态变量都被命名为相同的东西,你正在做各种意想不到的事情。
如上所述,您可以删除第129行和第130行以获取要运行的代码;但是,您可能需要更好地了解基础知识。这是一个开始的地方:
答案 3 :(得分:0)
错误说。 “'int'对象不可调用。”我无法通过搜索找出这意味着什么。
你的意思是通过了解语言和英语的基础知识来弄清楚这意味着什么。
错误表明'int'
对象不可调用。调用是你对函数(和类似的东西)所做的,所以你有一个int,你认为你有一个函数(或类似的东西)。这是因为您将函数名称反弹为int。
在Python中,你现在应该知道:
一切都是对象,甚至是功能。
直到运行时才会检查类型。
值包含类型,而不是变量(名称,确实)。
所以没有什么能阻止你写作:
function a(): pass
a = 1
第一行创建一个函数对象,并将其绑定到名称a
。第二行将整数1
绑定到名称a
。这取代了旧的绑定,因此a
不再是函数的名称。