java,python对于文件未找到为啥抛出异常,而不是返回false或者空值
这叫做"故障导向安全原则",一个程序出现异常意味着后续执行的不可靠,这种情况下必须让程序员主动处理这些异常,否则终止程序执行
只有丢出异常才能达到这个效果。
上面的类中的属性和方法,在类外都可以通过点的方式来调用。为了保证封装性以及安全,某些属性和方法要禁止外部访问。python中双下划线开始的属性和方法是私有的,外部不能直接访问,如下例:
class Duck(Bird):
def __init__(self,c,swi):
Bird.__init__(self, c)
self.__swim = swi
def swimm(self):
if self.__swim:
print("I can swim")
else:
print("I can not swim")
def __setSwim(self,swim):
self.__swim = swim
duck = Duck("write",True)
duck.swimm()
duck.__setSwim(False)
print(duck.__swim)
输出结果:
Bird init
I can swim
Traceback (most recent call last):
File "E:\workspace-python\firstpython\src\first.py", line 36, in <module>
duck.__setSwim(False)
AttributeError: 'Duck' object has no attribute '__setSwim'
报错,说明爽下划线开始的成员变量和成员方法,不能在外部访问。