多继承属性、方法重复问题
Python允许类之间的多继承关系,如果在多继承的时候,继承的多个父类有相同的方法和属性,第一个父类出现的方法和属性会覆盖后面父类相同的属性和方法,具体的例子如下:
使用'__'开头的变量或方法是python类的私有变量或私有方法,不能直接访问(和java用private声明一样):
定义类变量(java使用static声明的变量):
class A :type= 'a'def foo(self): print ( 'A' )
class B :type= 'b'def foo(self): print ( 'B' )
class C :type= 'c'def foo(self): print ( 'C' )class D (B,A,C):def __init__(self):passa = D()a.foo()print (a.type)
输出的结果如下所示:
Bb
使用'__'开头的变量或方法是python类的私有变量或私有方法,不能直接访问(和java用private声明一样):
class
yhb_test:
def
__init__(self,name):
self.__name=name
def
setName(self,name):
self.__name=name
def
getName(self):
return
self.__name
if
__name__ ==
'__main__'
:
yhb=yhb_test(
'杨焕滨'
)
#print yhb.__name会报错
print
yhb.getName()
定义类变量(java使用static声明的变量):
class
yhb_test:
x=
1
def
addself(self):
yhb_test.x+=
1
if
__name__ ==
'__main__'
:
x1=yhb_test()
x2=yhb_test()
x1.addself()
x1.addself()
print
'x2.x='
,x2.x
#注意了,这样修改x1中的类变量不会修改x2的,注意和上面的区别
x1.x=
10
print
'x1.x='
,x1.x
print
'x2.x='
,x2.x
输出:
x2.x= 3
x1.x= 10
x2.x= 3