为什么我在这段 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。附上得到的结果。