AttributeError:“NoneType”对象没有属性“foo”

2024-10-02 08:21:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了这个错误:

[...], line 28, in <module>
    PlayerDamage = Dice * int(set_p_w.player_damage)
AttributeError: 'NoneType' object has no attribute 'player_damage'

运行此代码时:

^{pr2}$

这是player.set_player_weapon()的样子:

def set_player_weapon():
    import items
    player_weapon = items.WBrokenSword
    player_damage = player_weapon.damage

我到处找遍了,尝试了很多不同的解决方案,但没有任何帮助。我的代码怎么了?在


Tags: 代码in错误lineitemsdiceintattributeerror
1条回答
网友
1楼 · 发布于 2024-10-02 08:21:45

从您发布的代码来看,player.set_player_weapon()不返回任何内容。所以set_p_w什么都不是。您与set_p_w进行交互,就像它是一个对象一样,但是set_player_weapon()不创建对象,它只设置两个局部变量(player_weapon和{}),然后在函数结束时丢弃它们。在

实现这一点的最简单方法是让您的player.set_player_weapon()方法返回一个包含该信息的元组,这样它就可以存储在函数:(player_weapon, player_damage)之外的a变量中。在

元组方法

def set_player_weapon():
    import items
    player_weapon = items.WBrokenSword
    player_damage = player_weapon.damage
    return (player_weapon, player_damage)

player_weapon_damage = player.set_player_weapon()
PlayerDamage = Dice * player_weapon_damage[0]

更好的方法是为Player创建一个类,该类具有属性player_weapon和{},以及设置和更改其属性的def set_player_weapon()等方法。在

相关问题 更多 >

    热门问题