python - 除了属性之外,Python 类方法还返回“无”
问题描述
我正在制作一个简单的方法,该方法将返回类属性值的列表。它工作正常,但在打印列表的末尾也总是显示“无”。我不确定为什么。任何澄清?
这是我的代码:播放器类
class Player:
def __init__(self, name, caps, inventory, caravans):
self.name = name
self.caps = caps
self.inventory = inventory
self.caravans = caravans
Inventory 类及其方法,我指的是列表方法。
class Inventory:
"""Items are stored by value not quantity"""
def __init__(self, weapons_ammo, meds_chems, armor):
self.weapons_ammo = weapons_ammo
self.meds_chems = meds_chems
self.armor = armor
def list(self):
"""List all inventory values."""
print(f'Weapons & Ammo: {self.weapons_ammo}\n'
f'Meds & Chems: {self.meds_chems}\n'
f'Armor: {self.armor}')
实例
example_inventory = Inventory(5000, 2000, 1500)
example_player = Player('John', 10000, example_inventory, 3)
当我运行此代码时:
print(example_player.inventory.list())
我得到:
武器和弹药:5000 药物和化学品:2000 护甲:1500 无
但是当我在没有打印功能的情况下运行它时:
example_player.inventory.list()
我得到了我正在寻找的正确回报,最后是“无”。
谁能解释这是为什么?我假设它与已经调用打印函数的方法有关。
谢谢!
解决方案
您专门print
编辑了函数的返回值:
print(example_player.inventory.list())
您的list
函数没有明确的返回;默认值为None
. 这与函数内部有另一个无关print
,只是你没有返回任何东西。
我认为您要做的就是执行该功能:
example_player.inventory.list()
顺便说一句,“隐藏”内置类型是非常糟糕的形式:不要list
用作函数名。诸如此类的东西show_inventory
会更好。
推荐阅读
- c# - Json 数组到 Xamarin 表单中的选取器
- java - 如何使用jooby编写rest来上传多个文件
- reactjs - React/Typescript:this.setState 不是函数
- php - 集合字段上的验证组
- react-native - 在地图功能中打开模式反应原生
- spring - cvc-complex-type.2.4.c:匹配通配符是严格的,但找不到元素“mvc:resource”的声明
- python - 尝试检查此函数中的 x, y 参数是否在很长一段时间内都相同,但似乎不起作用
- javascript - ExpressJS - 为通用 Nuxt 应用程序和 AngularJS SPA 提供服务
- azure - 通过自定义脚本扩展下载的文件存储在虚拟机中的哪里?
- python - 在 Python 中求解 x