如何不打印 "None"
How to not print "None"
出于某种原因,我无法弄清楚为什么我的代码在从 class 中打印出某些内容后会打印 "None" 或如何删除它。这是我的代码:
class armour:
def __init__(self, name, defence):
self.name = name
self.defence = defence
def block(self):
print("your " + self.name + " blocked " + str(self.defence) + "\n")
class weapon:
def __init__(self, name, attack):
self.name = name
self.attack = attack
def attacks(self):
print("your " + self.name + " blocked " + str(self.attack) + "\n")
loot = {
"id1" : armour("test 1", 10),
"id2" : weapon("test 2", 10),
}
equipment = {
"armour" : loot["id" + str(1)],
"weapon" : loot["id" + str(2)],
}
print(equipment["armour"].name)
print(equipment["armour"].block())
print(equipment["weapon"].name)
print(equipment["weapon"].attacks())
如果有人也能解释为什么会这样,我们将不胜感激。
它打印 None 因为打印语句中的函数调用没有 return 任何东西。只需进行函数调用并为它们删除打印。或者 return 字符串。例如:
print(equipment["armour"].name)
equipment["armour"].block()
print(equipment["weapon"].name)
equipment["weapon"].attacks()
您的 weapon.attacks
方法没有明确的 return 值,因此它 return 是 None
。当您调用 print(equipment["weapon"].attacks())
时,您将打印出 return 值,即 None
。要么将方法更改为 return "your " + self.name + " blocked " + str(self.attack) + "\n"
字符串,然后打印它,要么只调用该方法并让它进行打印,而不打印 return 值。
基本上将最后一行更改为:
#print(equipment["weapon"].attacks())
equipment["weapon"].attacks()
在 python 中每个函数 return 都是一个值。如果您不指定,它将 return None。如果你在上面打印函数调用它将打印 None.
def none_func():
pass
print(none_func())
None
在您的代码中,您基本上在做同样的事情。
print(equipment["armour"].block())
这里是打印 block() 方法的调用。
出于某种原因,我无法弄清楚为什么我的代码在从 class 中打印出某些内容后会打印 "None" 或如何删除它。这是我的代码:
class armour:
def __init__(self, name, defence):
self.name = name
self.defence = defence
def block(self):
print("your " + self.name + " blocked " + str(self.defence) + "\n")
class weapon:
def __init__(self, name, attack):
self.name = name
self.attack = attack
def attacks(self):
print("your " + self.name + " blocked " + str(self.attack) + "\n")
loot = {
"id1" : armour("test 1", 10),
"id2" : weapon("test 2", 10),
}
equipment = {
"armour" : loot["id" + str(1)],
"weapon" : loot["id" + str(2)],
}
print(equipment["armour"].name)
print(equipment["armour"].block())
print(equipment["weapon"].name)
print(equipment["weapon"].attacks())
如果有人也能解释为什么会这样,我们将不胜感激。
它打印 None 因为打印语句中的函数调用没有 return 任何东西。只需进行函数调用并为它们删除打印。或者 return 字符串。例如:
print(equipment["armour"].name)
equipment["armour"].block()
print(equipment["weapon"].name)
equipment["weapon"].attacks()
您的 weapon.attacks
方法没有明确的 return 值,因此它 return 是 None
。当您调用 print(equipment["weapon"].attacks())
时,您将打印出 return 值,即 None
。要么将方法更改为 return "your " + self.name + " blocked " + str(self.attack) + "\n"
字符串,然后打印它,要么只调用该方法并让它进行打印,而不打印 return 值。
基本上将最后一行更改为:
#print(equipment["weapon"].attacks())
equipment["weapon"].attacks()
在 python 中每个函数 return 都是一个值。如果您不指定,它将 return None。如果你在上面打印函数调用它将打印 None.
def none_func():
pass
print(none_func())
None
在您的代码中,您基本上在做同样的事情。
print(equipment["armour"].block())
这里是打印 block() 方法的调用。