一、私有属性
一般面向对象的编程语言都会区分公有和私有的数据类型,像C++和Java他们使用public和private关键字,用于声明数据是公有还是私有的,但在Python中并没有用类似的关键字来修饰
In [1]:
class Person:
name=’小甲鱼’
p=Person()
p.name
Out[1]:
‘小甲鱼’
为了实现类似私有变量的特征,Python内部采用了一种叫 name mangling(名字改编)的技术,在python中定义私有变量只需要在变量名或函数名前面加上 ‘_ _’ 两个下划线,那么这个函数或变量就会成为私有的了
In [24]:
#
class Person:
__name=’小甲鱼’
p=Person
p.__name
p._Person__name #如果想直接在外部访问获取可以采用这种方法,也可以通过方法从内部获取,如下面的编码所示
Out[24]:
‘小甲鱼’
In [21]:
class Person:
def init(self,name):
self.__name=name
def getName(self):
return self.__name
p=Person(‘小甲鱼’)
p.getName()
p._Person__name
Out[21]:
‘小甲鱼’
二、继承
In [30]:
class Parent:
def hello(self):
print(“正在调用父类方法…”)
class Child(Parent):
pass
p=Parent()
p.hello()
c=Child()
c.hello()
正在调用父类方法…
正在调用父类方法…