You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调用获取Python类的成员函数中定义的变量?

你现有代码里各个方法内部定义的name、hp都是函数局部变量,函数执行完成后就会被销毁,外部无法直接访问,需要先调整类的实现逻辑,下面给两种可行方案:

方案1:最小改动适配原有结构

直接修改各个方法返回装备属性字典,调用时直接取值即可:

class Character():
    def Armor():
        return {'name': 'Leather armor', 'hp': 10}

    def Helmet():
        return {'name': 'Leather helmet', 'hp': 5}

    def Sword():
        return {'name': 'Wooden sword', 'dps': 5}

    def Name():
        return None

# 调用实现打印效果
armor_info = Character.Armor()
helmet_info = Character.Helmet()
print(f"You have: {armor_info['name']} with hp {armor_info['hp']}, {helmet_info['name']} with hp {helmet_info['hp']}")

方案2:面向对象标准实现(更推荐)

正常逻辑下装备属于角色实例的属性,调整为实例属性写法扩展性更强,后续换装备、加属性都更方便:

class Character():
    def __init__(self, role_name):
        self.name = role_name
        # 初始化默认装备属性
        self.armor = {'name': 'Leather armor', 'hp': 10}
        self.helmet = {'name': 'Leather helmet', 'hp': 5}
        self.sword = {'name': 'Wooden sword', 'dps': 5}

# 实例化角色
player = Character("新手冒险者")
# 打印装备
print(f"You have: {player.armor['name']} with hp {player.armor['hp']}, {player.helmet['name']} with hp {player.helmet['hp']}")

后续要替换装备直接修改对应属性即可,比如player.armor = {'name':'Iron armor', 'hp': 30}就完成了护甲升级。

内容的提问来源于stack exchange,提问作者Cataclysm88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 13:54:03