Python-无法在类中的方法之间传递变量
我是一名python初学者,在做一个课堂练习时,我必须创建一个学生课堂,支持从用户那里获取5个科目的分数并返回百分比。这两项工作都必须通过创建两种不同的方法来完成。我已经试过多次了,但我的逻辑似乎有缺陷,那么我该如何解决这个问题呢?我知道,如果我在init类中将主题1-5作为属性传递,那么代码本来可以工作,但我被指示使用单独的方法。调用perc()时遇到的错误是未定义“setMarks”。这是我的密码:Python-无法在类中的方法之间传递变量,python,Python,我是一名python初学者,在做一个课堂练习时,我必须创建一个学生课堂,支持从用户那里获取5个科目的分数并返回百分比。这两项工作都必须通过创建两种不同的方法来完成。我已经试过多次了,但我的逻辑似乎有缺陷,那么我该如何解决这个问题呢?我知道,如果我在init类中将主题1-5作为属性传递,那么代码本来可以工作,但我被指示使用单独的方法。调用perc()时遇到的错误是未定义“setMarks”。这是我的密码: class Student: def __init__(self, name, r
class Student:
def __init__(self, name, rollno, stream):
self.name = name
self.roll = rollno
self.stream = stream
def setMarks(self):
sub1 = int(input("Enter marks for subject 1: "))
sub2 = int(input("Enter marks for subject 2: "))
sub3 = int(input("Enter marks for subject 3: "))
sub4 = int(input("Enter marks for subject 4: "))
sub5 = int(input("Enter marks for subject 5: "))
totalmarks = sub1 + sub2 +sub3 + sub4 + sub5
def getStream(self):
if self.stream == "A":
print("Arts")
elif self.stream == "C":
print("Commerce")
elif self.stream == "S":
print("Science")
else:
print("Invalid stream")
def perc(self):
totalmarks = setMarks()
percentage = ( totalmarks / 500) * 100
print(f"{self.name} has a percentage of: {percentage}" )
你需要
def setMarks(self):
sub1 = int(input("Enter marks for subject 1: "))
sub2 = int(input("Enter marks for subject 2: "))
sub3 = int(input("Enter marks for subject 3: "))
sub4 = int(input("Enter marks for subject 4: "))
sub5 = int(input("Enter marks for subject 5: "))
totalmarks = sub1 + sub2 +sub3 + sub4 + sub5
return totalmarks
# ^^^
此外,在Python
中的类中,您需要使用self
调用函数(从技术上讲,它可以是任何函数,例如cls
,mypointer
,任何函数,而不是
totalmarks = setMarks()
你需要写作
totalmarks = self.setMarks()
你不能从setMarks()
中返回任何内容,因此perc()
中的totalmarks
总是None
。你需要return totalmarks
我试过了,但仍然得到了与以前相同的名称错误。嗯,我试过了,仍然得到了相同的名称错误NameError@zsasz:更新了答案,您需要编写self.setMarks()
。嘿,谢谢,它终于可以工作了,但是当我调用perc方法时,我必须重新输入我的标记。你知道我该怎么解决吗?