如何在 python 中将一个对象添加为另一个对象的字段
How to add an object as a field of another in python
我正在尝试让玩家能够装备护身符。唯一的问题是,我已经将护身符变成了一个对象,我希望 player.bracelet1 字段存储一个对象......这是商店系统中的一个字符串 :( 我应该只使用很多 if 循环吗?或者是有什么方法吗?这是必要的代码。可能会有一些漏洞,因为我的代码很长,我试着只放了必要的:
shop_stock=stock_dict[shop_id]
with open(shop_stock,'r') as f:
content=f.readlines()
items_on_sale=[]
for i in range (0,3):
items_on_sale.append(content[r.randint(0,len(content)-1)].strip())
action=int(input('What would you like to buy? (1,2 or 3)'))
item_bought=items_on_sale[action-1]
item_price=price_dict[item_bought]
player.money-=item_price
action=input(f'Do you want to equip your new {item_bought}?')
if action in yes_inputs:
equip_item(item_bought)
elif action in no_inputs:
player.backpack.append(item_bought)
def equip_item(item)
action=int(input(f'Would you like to equip your {item} as a '\
'right wrist bracelet(1), a left wrist bracelet(2) or'\
'a necklace(3)?'))
if action==1:
player.bracelet1=item
elif action==2:
player.bracelet2=item
elif action == 3:
player.necklace=item
#just to debug and check it works
print(player.bracelet1)
所以这只是我从我的功能中删除的一块,如果还有其他东西,请告诉我:D PS: 我没有把它放在这里但是每个护身符 (Small/Medium/Large Strength/Defense/Health) 有三个字段所以我真的不能没有对象...
所以,我找到了解决方案。问题不是意外的输出,而是我不知道该怎么做。好吧,当我意识到你可以在字典中使用对象时,我找到了一个解决方案,这使得它非常不言自明,即使写整个字典有点乏味
我正在尝试让玩家能够装备护身符。唯一的问题是,我已经将护身符变成了一个对象,我希望 player.bracelet1 字段存储一个对象......这是商店系统中的一个字符串 :( 我应该只使用很多 if 循环吗?或者是有什么方法吗?这是必要的代码。可能会有一些漏洞,因为我的代码很长,我试着只放了必要的:
shop_stock=stock_dict[shop_id]
with open(shop_stock,'r') as f:
content=f.readlines()
items_on_sale=[]
for i in range (0,3):
items_on_sale.append(content[r.randint(0,len(content)-1)].strip())
action=int(input('What would you like to buy? (1,2 or 3)'))
item_bought=items_on_sale[action-1]
item_price=price_dict[item_bought]
player.money-=item_price
action=input(f'Do you want to equip your new {item_bought}?')
if action in yes_inputs:
equip_item(item_bought)
elif action in no_inputs:
player.backpack.append(item_bought)
def equip_item(item)
action=int(input(f'Would you like to equip your {item} as a '\
'right wrist bracelet(1), a left wrist bracelet(2) or'\
'a necklace(3)?'))
if action==1:
player.bracelet1=item
elif action==2:
player.bracelet2=item
elif action == 3:
player.necklace=item
#just to debug and check it works
print(player.bracelet1)
所以这只是我从我的功能中删除的一块,如果还有其他东西,请告诉我:D PS: 我没有把它放在这里但是每个护身符 (Small/Medium/Large Strength/Defense/Health) 有三个字段所以我真的不能没有对象...
所以,我找到了解决方案。问题不是意外的输出,而是我不知道该怎么做。好吧,当我意识到你可以在字典中使用对象时,我找到了一个解决方案,这使得它非常不言自明,即使写整个字典有点乏味