Discuss / Python / 练习

练习

Topic source

class Student(object): def init(self,name,gender): self.name=name self.gender=gender#gender:通过2个下划线将属性私有化,private,外部无法访问,bart.__name 用法已经不能直接访问

def get_name(self):
    return self.name
def get_gender(self):#通过get__gender 方法,外部代码可以获取name 
    return self.__gender
def set_gender(self,gender):#通过set__gender 方法,允许外部代码修改gender,在方法中可以对参数做检查,避免无效参数
    if gender=='male'or gender=='female':
        self.__gender=gender
    else:
        raise ValudeError('invalid character')

bart=Student('Bart Simpson','male') print(bart.get_name(),bart.get_gender()) if bart.get_gender() != 'male': print('test failed!') else: bart.set_gender('female')#外部代码修改性别为female if bart.get_gender() != 'female': print('test failed!') else: print('test successfully!')

print(bart.get_name(),bart.get_gender())

交作业:

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):
        if gender == 'male' or  gender == 'female':
            self.__gender = gender
        else:
            raise ValueError('bad gender')

  • 1

Reply