Python封装方法代码输出混乱

Confusion over output of encapsulation method code in Python

    class encap:
          __a = 10
          b=11
          def __abc(self):
              print(self.b)
              print(self.__a)
          def xyz (self):
              # calling private method 
              self.__abc()

    a1= encap()
    print(a1.xyz())

这里 __a 和 __abc 是私有的。所以我在 xyz() 方法中调用 __abc() 。获取输出

11
10
None

我了解获得 11 和 10,但为什么我还要获得 None?

printa1.xyz() 结果 中,returns None(因为没有 return encap.xyz 中的语句)。只需调用 a1.xyz() 就足以打印您期望的内容。

默认情况下,Python returns None 中的一个方法,如果你 return 什么都没有。

您可以通过以下代码进行验证:

def test():
    print('Hello, world!')

print(test())

输出:

Hello, world!
None