我在做一个基于文本的冒险游戏。我想做的一件事是,使用类构建游戏,将主数据类放在一个单独的文件中,然后将调用所有类和函数的实际主循环放在一个单独的文件中。这是迄今为止我在调用主类文件时的主循环
import time
import sys
import pickle
import className
playerPrefs.createNew()
这是主类文件中的代码部分,在我运行程序时会受到影响。你知道吗
class playerPrefs(object):
# This line will create a function to create a new player name
def createNew(self):
print "Welcome to Flight of Doom Character Creation Screen."
time.sleep(2)
print "Please type your first and last Name, spaced in between, at the prompt"
time.sleep(2)
当我试图从我的主游戏文件运行createNew函数时,我的问题来了。如您所见,我导入了className,它是包含类的文件名。该文件位于我的主游戏文件所在的位置。我怀疑这可能与构造器有关,但我不确定。如果你们能帮我,我将非常感激。你知道吗
顺便说一句,这并不是想让你们回答我的问题:)我只是想说,这个网站和这里的编程向导,救了我很多次。感谢大家参与这个社区项目。你知道吗
因为
createNew
方法采用self
参数,所以它是一个实例方法。它需要类的实例才能被调用。现在有两种方法可以解决这个问题:创建类的实例:
使方法成为静态方法:
从你的结构来看,这两个似乎都不合适,因为从我的角度来看,整个班级似乎有点无用。你知道吗
试试看
或者
您已经将
playerPrefs()
定义为实例方法,而不是类方法(因为它的第一个参数是self
)。因此,在调用实例之前需要先创建实例,例如:另外,您编写的代码根本不应该运行,因为您还没有缩进
createNew()
的定义,您需要这样做。你知道吗正如韦德兰所说,要么使用:
为了让它工作,或者像他建议的那样从
className
导入playerPrefs
。你知道吗相关问题 更多 >
编程相关推荐