为什么 summ1 即使在函数中定义也没有打印出来?
why summ1 is not getting printed even it is defined in function?
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 即使在函数中定义也没有打印出来?
好吧,summ1、summ2、summ3 是在添加函数中定义的,当我尝试打印它们时,这段代码给我错误。
错误是
NameError:名称 '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)
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 即使在函数中定义也没有打印出来? 好吧,summ1、summ2、summ3 是在添加函数中定义的,当我尝试打印它们时,这段代码给我错误。
错误是 NameError:名称 '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)