【问题标题】:Why am i getting 'none' printed out in this piece of python3 code?为什么我在这段 python3 代码中打印出“无”?
【发布时间】:2020-06-29 13:49:03
【问题描述】:
   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:无 你好!!! 父方法2:无

    hihihihihihihi
    Child method 1: None
    hi!!!
    Child method 2: None
    hibye
    Child method 3: None

为什么除了打印语句之外还应该打印响应时,我会打印“无”?

【问题讨论】:

    标签: python-3.7


    【解决方案1】:

    print('Parent method 1:', p.method1())打印 method1() 的返回值。由于method1是一个打印函数,并且不返回值,所以它打印None

    我猜你想要做的事情应该可以通过以下方式实现:

    def method1(self):
        return self.a*2
    

    编辑:代码在 Python3.7 上运行。附上得到的结果。

    【讨论】:

    • 我试过这个,但我得到了相同的结果@ghost。 return 函数似乎没有改变任何东西。还有什么我可以尝试的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2013-08-20
    相关资源
    最近更新 更多