为什么我在这段 python3 代码中打印出 'none'?
Why am i getting 'none' printed out in this piece of python3 code?
class Parent:
def __init__(self,a):
self.a = a
def method1(self):
print(self.a*2)
def method2(self):
print(self.a+'!!!')
class Child(Parent):
def __init__(self, a, b):
self.a =a
self.b =b
def method1(self):
print(self.a*7)
def method3(self):
print(self.a + self.b)
p= Parent('hi')
c= Child('hi', 'bye')
print('Parent method 1:', p.method1())
print('Parent method 2:', p.method2())
print()
print('Child method 1:', c.method1())
print('Child method 2:', c.method2())
print('Child method 3:', c.method3())
当它运行时,我得到这个作为输出:
嘻嘻
父方法 1:None
你好!!!
父方法 2:None
hihihihihihihi
Child method 1: None
hi!!!
Child method 2: None
hibye
Child method 3: None
为什么我会打印 'None' 而不是除了打印语句之外还应该打印响应?
print('Parent method 1:', p.method1())
将 打印 method1() 的 return 值。由于 method1
是一个打印函数,并且 return 不是一个值,它会打印 None
.
我猜你想做的应该可以通过以下方式实现:
def method1(self):
return self.a*2
编辑:代码是 运行 Python3.7。附上得到的结果。
class Parent:
def __init__(self,a):
self.a = a
def method1(self):
print(self.a*2)
def method2(self):
print(self.a+'!!!')
class Child(Parent):
def __init__(self, a, b):
self.a =a
self.b =b
def method1(self):
print(self.a*7)
def method3(self):
print(self.a + self.b)
p= Parent('hi')
c= Child('hi', 'bye')
print('Parent method 1:', p.method1())
print('Parent method 2:', p.method2())
print()
print('Child method 1:', c.method1())
print('Child method 2:', c.method2())
print('Child method 3:', c.method3())
当它运行时,我得到这个作为输出: 嘻嘻 父方法 1:None 你好!!! 父方法 2:None
hihihihihihihi
Child method 1: None
hi!!!
Child method 2: None
hibye
Child method 3: None
为什么我会打印 'None' 而不是除了打印语句之外还应该打印响应?
print('Parent method 1:', p.method1())
将 打印 method1() 的 return 值。由于 method1
是一个打印函数,并且 return 不是一个值,它会打印 None
.
我猜你想做的应该可以通过以下方式实现:
def method1(self):
return self.a*2
编辑:代码是 运行 Python3.7。附上得到的结果。