简单阐述了如何获得私有属性,Python的继承逻辑以及原因,四种常用的方法。
获取私有属性
众所周知,Python中的类遍历当前方加了双下划线就无法从外部访问。
其实还是有方法访问的,因为Python并不会严格的让变量禁止被访问。
class person:
def __init__(self,age=18,weight = 60):
self.age = age
self.__weight = weight
def birthday(self):
self.age+=1
def getweight(self):
return self.__weight
jack = person()
print(jack.age)
>>>18
print(jack.__weight)
>>>AttributeError: 'person' object has no attribute '__weight'
这里会报一个错,但是可以用另一种方法访问
print(print(jack._person__weight))
>>> 60
****
继承逻辑
Python继承使用的是C3算法,可以避免再菱形继承中碰到的一些问题,比如某个父类反而把子类覆盖了。