gpt4 book ai didi

python - 如何获取class(__init__)的输入参数个数?

转载 作者:行者123 更新时间:2023-12-05 09:33:25 27 4
gpt4 key购买 nike

我想在 python 中获取每个科目的分数并返回其平均值和总和的类(class)分数。我知道如果我收到 4 个参数而不是平均分母应该是 4,但是我如何才能将它变成随输入数量变化的固定代码?,而不仅仅是计数数字和类型 4。我尝试了 Len(self) 或使用 for 循环计数,但 Len 出错,for 循环并不那么容易。

class score:
def __init__(self, language, math, english, science):
self.language = language
self.math = math
self.english = english
self.science = science

...

def sum_scores(self):
result = self.language + self.math + self.english + self.science
return result

def average(self):
average = self.sum_scores()/4 # Here is the problem!
return average

这是我关于堆栈的第一个问题。很抱歉我的英语不好和愚蠢的问题。

最佳答案

首先不要使用 4 个单独的属性。使用dict 来存储属性;然后你可以查询dict的大小。

class score:
def __init__(self, language, math, english, science):
self.scores = {'language': language, 'math': math, 'english': english, 'science': science}

...

def sum_scores(self):
return sum(self.scores.values())


def average(self):
return self.sum_scores() / len(self.scores)

如果您仍然需要每个分数的属性,请使用属性:

class score:
def __init__(self, language, math, english, science):
self.scores = {'language': language, 'math': math, 'english': english, 'science': science}


@property
def language(self):
return self.scores['language']

# etc.


def sum_scores(self):
return sum(self.scores.values())


def average(self):
return self.sum_scores() / len(self.scores)

关于python - 如何获取class(__init__)的输入参数个数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67287020/

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