python面向对象
继承
class Person(object):
''' classdocs '''
def __init__(self,name):
''' Constructor '''
self.name = name
class Student(Person):
def __init__(self,age,score):
self.age = age
self.score = score
def printInfo(self):
print("name is :%s age is :%s score is :%s" %(self.name, self.age,self.score))
student = Student(22,89)
student.name = "test"
student.printInfo()
以上Person类继承自object,并且有一个name属性,Student类继承自Person,定义了一个printInfo方法,用来打印信息,此时运行效果如下:
私有属性
在python中,给变量名称前面增加两个下划线,表示该变量是一个私有的变量
class Student(Person):
def __init__(self,age,score):
self.__age = age
self.score = score
def printInfo(self):
print("name is :%s age is :%s score is :%s" %(self.name, self.age,self.score))
上面age表示私有属性,不能通过对象来设置值,只能在类内部操作
为私有变量设置get和set方法
class Student(Person):
def __init__(self,age,score):
self.__age = age
self.__score = score
def printInfo(self):
print("name is :%s age is :%s score is :%s" %(self.name, self.__age,self.__score))
def set_age(self,age):
self.__age = age
def get_age(self):
return self.__age
student = Student(22,89)
student.name = "test"
student.set_age(30)
student.printInfo()
print("age is :%s" %(student.get_age()))
其实对于私有变量,也不是一定必须要通过get方法来获取,对于上面的栗子