反射练习题1

反射练习题

#第五题
# 循环的列表过程中如果删除列表元素,会影响后续的循环,推荐:可以尝试从后向前找
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
posted @ 2020-12-21 23:38  小杨的冥想课  阅读(78)  评论(0编辑  收藏  举报