Python中<__main__.dog object at 0x...>是什么?如何获取宠物名称?
问题解答
1. 输出的专业术语
你看到的这个输出是Python中对象的默认repr()表示,它由对象的__repr__特殊方法(默认实现)返回,用来标识对象的类型(如__main__.dog)和内存地址(如0x7fc51434c6a0),核心作用是给开发者提供对象的唯一身份标识信息。
2. 获取宠物的name属性
有两种实用方式:
- 直接访问对象的
name属性:
运行后会输出:print(dogs[0].name, cats[0].name)steve simon - 给类自定义
__str__或__repr__方法,让打印对象时自动显示name:class dog: def __init__(self,name): self.name = name dogs.append(self) def __str__(self): return self.name class cat: def __init__(self,name): self.name = name cats.append(self) def __str__(self): return self.name # 直接打印对象就会显示name print(dogs[0], cats[0]) # 输出:steve simon
3. 实现玩家购买宠物功能的思路
可以按以下步骤实现:
- 定义玩家库存列表:
player_inventory = [] - 获取玩家输入的宠物名称:
pet_name = input("请输入要购买的宠物名称:") - 在宠物列表中遍历查找对应对象并添加到库存:
player_inventory = [] def find_pet_by_name(name): # 合并猫狗列表遍历查找 for pet in dogs + cats: if pet.name == name: return pet return None # 购买逻辑 pet_name = input("请输入要购买的宠物名称:") target_pet = find_pet_by_name(pet_name) if target_pet: player_inventory.append(target_pet) print(f"已购买宠物:{target_pet.name}") else: print("该宠物不存在")
内容的提问来源于stack exchange,提问作者최승규
相关产品推荐
相关产品推荐

