打卡第四天,今天没想法,后续补
Topic source补充如下:
class Student(object):
def __init__(self, name, gender):
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 value')
补充教程的内容:
class Student(object): def __init__(self, name, score): self.__name = name self.__score = score #私有变量,外部无法访问__name def print_score(self): print('%s: %s' % (self.__name, self.__score)) #外部获取name,score def get_name(self): return self.__name def get_score(self): return self.__score #允许外部资源修改name、score #在方法中可以对参数做检查,避免传入无效的参数 def set_name(self,name): self.__name = name def set_score(self, score): if 0 <= score <= 100: self.__score = score else: raise ValueError('bad score') #变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的, # 是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用__name__、__score__这样的变量名。bat= Student('mary',90)#不能直接访问__name是因为Python解释器对外把__name变量改成了_Student__name,所以,仍然可以通过_Student__name来访问__name变量# print(bat.__name)print(bat._Student__name)
- 1
一颗美美哒心
class Student(object):
def __init__(self, name, __gender):
self.name = name
self.gender = __gender
def get_gender(self, gender)
self.gender=__gender
def set_gender(self,gender)
self.gender=__gender