gpt4 book ai didi

python - 打印类结果在python中返回'none'

转载 作者:行者123 更新时间:2023-11-28 20:30:12 25 4
gpt4 key购买 nike

我最近开始学习使用Python 3.7的Python语言。
我正在使用一个文本rpg的基础来学习Python的诀窍,因为它是我感兴趣的东西。我指定了类,并将其设置为打印“Stats”类,以便以后可以使用用户输入更改值。控制台正在按我所希望的方式打印统计数据,但在数字后面添加了“无”有人能解释一下为什么会发生这种事,我该怎么解决?如果你只是想在没有解释的情况下发布代码,请不要。。。毕竟,我在努力学习:)

class Stats:

def __init__(self, strength=0, dexterity=0, wisdom=0, intelligence=0):
self.strength = strength
self.dexterity = dexterity
self.wisdom = wisdom
self.intelligence = intelligence

def getStats(self):
print(self.strength, self.dexterity, self.wisdom, self.intelligence)

def statinput(self, value1, value2, value3, value4):
self.value1 = strength_input
self.value2 = dexterity_input
self.value3 = wisdom_input
self.value4 = intelligence_input
if strength_input:
self.strength = self.strength + value1
if dexterity_input:
self.dexterity = self.dexterity + value2
if wisdom_input:
self.wisdom = self.wisdom + value3
if intelligence_input:
self.intelligence = self.intelligence + value4

player = Stats(1, 1, 1, 1)
print(player.getStats())

strength_input = int(input('Enter a value for strength.'))
dexterity_input = int(input('Enter a value for dexterity.'))
wisdom_input = int(input('Enter a value for wisdom.'))
intelligence_input = int(input('Enter a value for intelligence.'))

player_stat_choice = player.statinput(strength_input, dexterity_input,
wisdom_input, intelligence_input,)

print(player.getStats())

所有上述代码功能,但正在将以下内容打印到控制台:
1 1 1 1
None
Enter a value for strength.2
Enter a value for dexterity.2
Enter a value for wisdom.2
Enter a value for intelligence.2
3 3 3 3
None

我不确定在我扩展了这一部分之后,“无”部分是否会影响到以后的任何事情,所以我现在就处理:)提前感谢您的时间。

最佳答案

def getStats(self):
print(self.strength, self.dexterity, self.wisdom, self.intelligence)

在类方法中使用print()来打印类值是个坏主意。
有两种更好的方法:
(一)
def get_stats(self):
return f"{self.strength}, {self.dexterity}, {self.wisdom}, {self.intelligence}"

然后你可以打印玩家的数据如下:
print(player.get_stats())

但请看一下 Python PEP8 code style。并正确命名函数和方法。
2个)
def __str__(self):
return f"{self.strength}, {self.dexterity}, {self.wisdom}, {self.intelligence}"

替换过时的方法getStats()并使用dunder方法str()
然后你就可以很容易地打印出这样的球员数据
print(player)

关于python - 打印类结果在python中返回'none',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58171542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com