问题描述
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 ?
解决方法
您正在 print
执行 a1.xyz()
的 result,它返回 None
(因为 {{1} 中没有 return
语句})。只需调用 encap.xyz
就足以打印您所期望的内容。
默认情况下,Python 中的方法如果不返回任何内容则返回 None
。
您可以通过以下代码验证相同的内容:
def test():
print('Hello,world!')
print(test())
输出:
Hello,world!
None