在Python中将对象或其值从一个脚本传递到另一个脚本?
我对Python相当陌生,尤其是类/对象和术语。但我想做的是:我有一个目标“英雄”。此对象具有“健康”变量和“库存”列表。我在主游戏文件(称为“game.py”)中创建对象。然后我导入另一个文件(比如:“minigame.py”),我想执行它 我的问题是:我希望能够在小游戏脚本中使用“英雄”对象及其健康变量和库存列表,对其进行更改,并将其传递回主游戏文件。但当我尝试导入“hero”时,它只是创建了该类的另一个对象 是否有可能让脚本以我描述的方式进行通信?在另一个脚本中使用对象并对其进行更改在Python中将对象或其值从一个脚本传递到另一个脚本?,python,file,class,object,import,Python,File,Class,Object,Import,我对Python相当陌生,尤其是类/对象和术语。但我想做的是:我有一个目标“英雄”。此对象具有“健康”变量和“库存”列表。我在主游戏文件(称为“game.py”)中创建对象。然后我导入另一个文件(比如:“minigame.py”),我想执行它 我的问题是:我希望能够在小游戏脚本中使用“英雄”对象及其健康变量和库存列表,对其进行更改,并将其传递回主游戏文件。但当我尝试导入“hero”时,它只是创建了该类的另一个对象 是否有可能让脚本以我描述的方式进行通信?在另一个脚本中使用对象并对其进行更改 #
# game.py
class Hero(object):
instruction1 = "\nYou need to set your hero's name"
name = ""
health = 100
inventory = []
def __init__(self):
self.setting()
def setting(self):
self.set_name()
print('\nHi', self.name, '\n')
self.status()
def set_name(self):
print(self.instruction1)
self.name = input('')
def status(self):
print('Your health stat is: ', self.health)
def show_inventory(self):
print("Your current inventory contains: ", self.inventory)
hero=Hero()
import minigame
然后在我的“迷你游戏”程序中,我尝试导入英雄,但当我运行代码时,它只创建了一个新的英雄:
# minigame.py
print("\nminigame starts here\n")
from game import hero
然后我运行“game.py”,输出如下所示:
你需要设定你英雄的名字
链接
Hi-link
你的健康数据是:100
小游戏从这里开始
你需要设定你英雄的名字
塞尔达
嗨,塞尔达
您的健康状态为:100这里只有一个实例,
hero
。是什么让你认为正在创建一个新的?我刚刚编辑了我的问题并添加了输出:两次询问我的名字,一次是在“game.py”运行时,另一次是在“minigame.py”运行时。@Eisfuechin“两次询问我的名字”:你的minigame.py
不是有效模块。阅读:,遵守如果uuu name_uuuu==“uuu main_uuuuuu”:
部分。你有一个循环导入(即游戏导入小游戏,小游戏导入游戏),这是不好的,这也是为什么看到英雄实例化两次的原因。首先,如果您真的需要两个单独的脚本,您应该认真思考。你有两个独立的游戏,都需要相同的蓝图(即类)的英雄?如果您可以回答是,那么您应该将英雄
分离到第三个python文件中,并且只从两个游戏脚本导入这个新模块(而不是相反)。然而,这只会解决实例化发生两次的问题,而不是原来的问题。