大家好,这两天比较闲,在自学python,刚看完了类这一章,总结一下。
一. __init__
python的类和C++的类大体上还是比较类似的,但python的类中多了__init__这一设定。
__init__方法是用来初始化类的,例如:
Class A:
def __init__(self,a = 1,b = 2):
self.a = a
self.b = b
def setSum(self,a,b):
return self.a * self.b
我个人的理解说直白一点就是__init__后面必须要跟self用来表示自身的这个类,有一点点类似于C++中的this吧。后面跟上类中包含的数据成员,可以设定默认值也可以不设定。再后面def的是类中包含的函数成员。相当于self.a才是类中的a,定义的a = 1是如果在设定类对象时使用默认参数时传入的实参,因此,还要有一个赋值的语句,self.a = a。
二.数据隐藏&私有数据成员
类的存在很大一部分是为了将数据隐藏,因此C++中由private这一设定,而python中也有自己的数据隐藏方式。
Class A:
def __init__(self,a = 1,b = 2):
self.__a = a
self.__b = b
def getA(self):
return self.__a
def getSum(self,a,b):
return self.__a * self.__b
如上所示我们通过在初始化赋值时在a,b前加上__实现了对数据a和b的隐藏,这时如果再用上面的setSum函数是无法return出a和b相加的结果的,针对隐藏数据,我们将函数以get开头,这样读取__a和__b不会报错。
暂时就是这些了,我们下期见!