day25作业 - 定义类
一:题目1
定义一个People类,每个人的对象都有名字\年龄\性别三个属性分别完成对这个三个属性的:隐藏\开放接口\property伪装操作
ps:在开放的接口里严格控制赋值操作的数据类型问题
class Prople:
def __init__(self, name, age, gender):
self.__name = name
self.__age = age
self.__gender = gender
def show_name(self):
return f'姓名:{self.__name}'
# 姓名相关
def set_name(self, inp_name):
self.__age = inp_name
print(f'修改成功,修改后姓名为:{self.__age}')
def del_name(self):
print('怎么可能让你删除名字呢?!')
name = property(show_name, set_name, del_name)
# 年龄
def show_age(self):
return f'年龄:{self.__age}'
def set_age(self, inp_age):
if type(inp_age) is not int:
print("姓名只能是字符串")
else:
self.__age = inp_age
print(f'修改成功,修改后年龄为:{self.__age}')
def del_age(self):
inp_sure = input('确定要删除年龄吗?(Y/N)').strip()
if inp_sure.lower() == 'y':
del self.__age
print('好家伙,连年龄都敢删,等着坐牢吧!')
else:
print('量你也不敢')
age = property(show_age, set_age, del_age)
# 性别
def show_gender(self):
return f'性别:{self.__gender}'
def set_gender(self, inp_gender):
if inp_gender == '男':
self.__gender = '男'
print(f'当前性别:{self.__gender}')
elif inp_gender == '女':
self.__gender = '女'
print(f'当前性别:{self.__gender}')
else:
print('???只能输入男和女,不知道吗?!')
def del_gender(self):
inp_sure = input('确定要删除性别吗?(Y/N)').strip()
if inp_sure.lower() == 'y':
print('还好我阻止了你,不然你就凉凉了!')
else:
print('量你也不敢!')
gender = property(show_gender, set_gender, del_gender)
p1 = Prople('xxq', 18, 'male')
# print(p1.name)
# p1.name = 'zsy'
# del p1.name
# print(p1.age)
# p1.age = 22
# del p1.age
# print(p1.gender)
# p1.gender = '男'
# del p1.gender