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?
您 print
在 a1.xyz()
的 结果 中,returns None
(因为没有 return
encap.xyz
中的语句)。只需调用 a1.xyz()
就足以打印您期望的内容。
默认情况下,Python returns None
中的一个方法,如果你 return 什么都没有。
您可以通过以下代码进行验证:
def test():
print('Hello, world!')
print(test())
输出:
Hello, world!
None
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()
的 结果 中,returns None
(因为没有 return
encap.xyz
中的语句)。只需调用 a1.xyz()
就足以打印您期望的内容。
默认情况下,Python returns None
中的一个方法,如果你 return 什么都没有。
您可以通过以下代码进行验证:
def test():
print('Hello, world!')
print(test())
输出:
Hello, world!
None