我目前正在研究一个简单的回合制游戏的框架。我试图在与当前文件不同的文件中调用类内的定义。我从中导入移动集文件的程序称为 Pymon_Movesets。我将它导入到 Pymon_Main 文件中。两者的代码看起来有点像这样......
( Pymon_Moveset )
class normaltype():
def scratch():
type = normal
slot = 1
# Base normal type move
damage = 2 * level/2
Pymon_Main
From Pymon_Movesets import *
def Initialize():
Scratch = Pymon_Movesets.normaltype.scratch()
Bite = Pymon_Movesets.normaltype.bite()
我的错误
File "C:\Users\samsc\Desktop\Pymon\Pymon_main.py", line 2, in <module>
from Pymon_Movesets import * File "C:\Users\samsc\Desktop\Pymon\Pymon_Movesets.py", line 3, in <module>
import Pymon_main File "C:\Users\samsc\Desktop\Pymon\Pymon_main.py", line 110, in <module>
gamefunction.Initialize() File "C:\Users\samsc\Desktop\Pymon\Pymon_main.py", line 26, in Initialize
Scratch = Pymon_Movesets.normaltype.scratch() AttributeError: module 'Pymon_Movesets' has no attribute 'normaltype' The program
'[4908] python.exe' has exited with code -1073741510 (0xc000013a).
我正在使用 Visual Studios Python 编辑器。
感谢您的时间
您正在将 的所有内容Pymon_Moveset.py
导入当前命名空间,但是,您仍然使用文件名调用该类。此外,您需要在调用方法之前创建类的实例。最后,您需要包含self
在方法签名中,因此它绑定到类:
在 Pymon_Movesets 中:
class normaltype():
def scratch(self):
type = normal
slot = 1
# Base normal type move
damage = 2 * level/2
在主文件中:
import Pymon_Movesets
def Initialize():
Scratch = Pymon_Movesets.normaltype().scratch()
Bite = Pymon_Movesets.normaltype().bite()
但是,如果要使用类名而不是实例访问类中的方法,请使用staticmethod
:
在Pymon_Moveset.py
:
class normaltype():
@staticmethod
def scratch():
type = normal
slot = 1
# Base normal type move
damage = 2 * level/2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句