如何解决为什么即使在函数中定义了 summ1 也没有打印出来?
class Student:
def __init__(self,m1,m2):
self.m1=m1
self.m2=m2
def add(self,s1,s2):
summ1 = self.m1 + self.m2
summ2 = s1.m1 + s1.m2
summ3 = s2.m1 + s2.m2
std1=Student(89,99)
std2=Student(95,99)
std3=Student(95,99)
std1.add(std2,std3)
print(summ1)
print(summ2)
print(summ3)
为什么即使在函数中定义了 summ1 也没有打印出来? 好吧,当我尝试打印它们时,在 add 函数中定义了 summ1、summ2、summ3,这段代码给了我错误。
错误是 NameError: name 'summ1' 未定义
解决方法
summ1
,summ2
,summ3
是函数 add
中定义的局部变量,它们在此函数之外不可见。如果您将它们替换为 self.summ1
、self.summ2
、self.summ3
,则 print(std1.summ1)
等将起作用。
正如 AnkurSaxena 所说,您无法以尝试的方式访问变量。
以下代码应该可以解决您的问题:
class Student:
def __init__(self,m1,m2):
self.m1=m1
self.m2=m2
self.summ1 = None
self.summ2 = None
self.summ3 = None
def add(self,s1,s2):
self.summ1 = self.m1 + self.m2
self.summ2 = s1.m1 + s1.m2
self.summ3 = s2.m1 + s2.m2
std1=Student(89,99)
std2=Student(95,99)
std3=Student(95,99)
std1.add(std2,std3)
print(std1.summ1)
print(std1.summ2)
print(std1.summ3)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。