反射练习题
#第五题
# 循环的列表过程中如果删除列表元素,会影响后续的循环,推荐:可以尝试从后向前找
li = ['李杰','女神','金鑫','武沛齐',"李子龙"]
# 请补充代码
class Foo:
def __init__(self,name):
for i in li:
if i[0] == name:
li.remove(i)
print(li)
name = input('请输入要删除的姓氏:') # 如输入“李”,则删除所有姓李的人
Foo(name)
#这是其一,那么我是觉得肯定是有其他的方法,具体是什么?需要慢慢的考究
#第六题 自我感觉写的好烂啊
class User(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __delitem__(self,key):
for i in info:
if name == i.name:
info.remove(i)
# # 请补充代码将指定用户对象从info列表中删除
info = [User('武沛齐', 19), User('李杰', 73), User('景女神', 16)] #里面其实已经封装了三组数据了。
name = input('请输入要删除的用户姓名:')
for i in info:
del i[name]
print(info)
#第七题
class School(object):
"""学校"""
def __init__(self):
# 员工字典,格式为:{"销售部": [用户对象,用户对象,] }
self.user_dict = {}
def invite(self, department, user_object):
"""
招聘,到用户信息之后,将用户按照指定结构添加到 user_dict结构中。
:param department: 部门名称,字符串类型。
:param user_object: 用户对象,包含用户信息。
:return:
"""
if self.user_dict.get(department) == None:
self.user_dict = [user_object]
else:
self.user_dict[department].append[user_object]
print(self.user_dict)
'''
#我的菜鸡代码,主要还是对前面字典的操作渐渐的遗忘了
#个人觉得此处用if语句是非常愚蠢的行为
for i in self.user_dict.keys():
if department == i:
self.user_dict[department].append(user_object)
else:
self.user_dict[department] = user_object # 当键不重复时,当然此时还是空的字典
print(self.user_dict)
'''
obj = School()
obj.invite("销售部","杨子良")
#具体什么时候用self还是要考究的?!!!1