gpt4 book ai didi

python - 如何全局使用python中的对象?

转载 作者:太空宇宙 更新时间:2023-11-04 02:15:58 24 4
gpt4 key购买 nike

我正在用 Python 制作一个基于文本的角色扮演游戏作为一个自主项目。

我在文件 char.py 中有一个名为 Character 的类,并且在文件 mapAndclasses.py 中根据它创建了一个播放器对象。对于我放在单独文件中的战斗序列,我需要从 mapAndclasses.py 中获取 Character 对象。但是,我不知道如何全局使用对象。有可能这样做吗?谢谢;-;!!

字符.py

#Char.py
class character:
def __init__(self,name,job,level,exp,curHp,maxHp,mana,strength,defence,magic,baseCrit,coordsX,coordsY):
self.name = name
self.job = job
self.level = int(level)
self.exp = float(exp)
self.curHp = int(curHp)
self.maxHp = int(maxHp)
self.mana = int(mana)
self.strength = int(strength)
self.defence = int(defence)
self.magic = int(magic)
self.baseCrit = int(baseCrit)
self.coordsX = int(coordsX)
self.coordsY = int(coordsY)

def getCharacterInfo(self):
print("Name:", self.name, "\t\tLevel:", self.level)
print("Job:", self.job, "\t\tExperience:", self.exp)
print("HP:",self.curHp, "/", self.maxHp)
print("Mana:", self.mana)
print("Str:",self.strength)
print("Def:", self.mana)
print("Magic:", self.mana)
print("Base Crit:", self.baseCrit)

map 和类.py

# Load player
def loadPlayer():

saveArray = []
with open("savefile.txt") as f:

for line in f:
var,val = line.strip().split("=")
saveArray.append(val)

f.close();

global inventory
inventory = Inventory.load()

global player
# player = name, job, level, exp, curhp, maxhp, mana, strength, defence, magic, baseCrit, x, y

player = character(saveArray[0],saveArray[1],saveArray[2],saveArray[3],
saveArray[4],saveArray[5],saveArray[6],saveArray[7],
saveArray[8],saveArray[9],saveArray[10], saveArray[11], saveArray[12])

# playerCoords = [row,column]
# player always starts from the left
global playerCoords
playerCoords = [player.getCoordsX(), player.getCoordsY()]

print("\nWelcome back " + saveArray[0])

最佳答案

  1. 在同一目录中创建一个新的空文件 __init__.py。 (这只是将目录标记为一个包,即告诉 Python 它可以从这里提取导入)。
  2. fightSequence.py 或您所称的任何名称的顶部,通过编写以下内容导入您的变量:import mapAndclasses.py
  3. 通过像 mapAndclasses.variableName 一样引用变量来使用它。

关于python - 如何全局使用python中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52659814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com