Python中封装方法代码的输出混淆[重复]
Posted
技术标签:
【中文标题】Python中封装方法代码的输出混淆[重复]【英文标题】:Confusion over output of encapsulation method code in Python [duplicate] 【发布时间】:2021-05-04 03:47:30 【问题描述】: 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 ?
【问题讨论】:
【参考方案1】:你是print
a1.xyz()
的结果,它返回None
(因为encap.xyz
中没有return
语句)。只需调用a1.xyz()
就足以打印您所期望的。
【讨论】:
【参考方案2】:默认情况下,Python 中的方法如果不返回任何内容,则返回 None
。
您可以从下面的代码中进行验证:
def test():
print('Hello, world!')
print(test())
输出:
Hello, world!
None
【讨论】:
以上是关于Python中封装方法代码的输出混淆[重复]的主要内容,如果未能解决你的问题,请参考以下文章