# -*- coding: utf-8 -*-
class Student(object):
def __init__(self, name, gender):
self.__name = name # 将变量变成私有变量,外部无法直接访问
self.__gender = gender
def get_gender(self):
return self.__gender
def set_gender(self, gender):
self.__gender = gender
bart = Student('Bart Simpson', 'male')
print(bart.get_gender())
if bart.get_gender() != 'male':
print('%s 测试失败' % bart.get_gender())
else:
bart.set_gender('female')
if bart.get_gender() != 'female':
print('%s 测试失败' % bart.get_gender())
else:
print('%s 测试成功' % bart.get_gender())
bart.__gender = 'TTEST' # 这里并没有改变class内部的__gender属性,而是增加了名为bart.__gender的变量
print(bart.__gender) # 这种在外部直接赋值是错误的写法,并不能改变Class内部的值
print(bart.get_gender())
继承可以把父类的所有功能都直接拿过来,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写。